AsiBackbone 5.0.0 Consumer Verification Guide
Use this guide to verify the 5.0.0 package family and its major-version
migration boundary.
5.0.0 is a security release. Alongside the usual package-identity checks, it
carries verification steps that earlier releases did not: the behavior changes
in this line make governance paths fail closed, and several require host action
before the upgrade is safe to deploy.
Verify package identity
Expected version: 5.0.0.
Expected package IDs remain AsiBackbone.Core,
AsiBackbone.DependencyInjection, AsiBackbone.Storage.InMemory,
AsiBackbone.EntityFrameworkCore, AsiBackbone.AspNetCore,
AsiBackbone.Testing, AsiBackbone.Templates, AsiBackbone.Analyzers,
AsiBackbone.OpenTelemetry, AsiBackbone.Signing.LocalDevelopment, and
AsiBackbone.Signing.ManagedKey.
Verify compatibility metadata
- target framework:
net10.0; - package version:
5.0.0; - assembly version:
5.0.0.0; - file version:
5.0.0.0; - repository:
https://github.com/AsiBackbone/AsiBackbone; - project site:
https://asibackbone.github.io/AsiBackbone/.
Consumers upgrading from 4.0.0 should complete the
5.0.0 Migration Guide before deploying.
Verify the security-relevant upgrade steps
These checks exist because 5.0.0 closes findings that affect 4.0.0 and
earlier. Complete them for the deployed host, not only for the build.
- [ ] Every host assembly is rebuilt against
5.0.0.0. Enum constants are inlined at compile time, so an assembly still compiled against4.xkeeps the old numbering and disagrees with this release silently. - [ ] Persisted columns holding
0forVerificationPolicyAction,SignatureVerificationCategory,GrantUseState, orAuditIntegrityVerificationCategoryare migrated. Zero is now a rejectedUnspecifiedsentinel rather than allow, valid, or accepted. - [ ] Capability validation call sites pass explicit
CapabilityGrantValidationOptions, including an audience expectation wherever proof or bounded-use checking is required. - [ ] Partial audit chain verification supplies
expectedPreviousLinkHash, and supplies an expected tip wherever completeness matters. - [ ] No production configuration path registers local-development signing, or
AllowInProductionis set deliberately with the ephemeral-key consequence accepted. - [ ] Signing call sites either tolerate the throwing
requireSignaturedefault or passrequireSignature: falseand inspect the result. - [ ] Deployments that relied on email as a default actor-id or display-name claim have added those claim types back explicitly, or have accepted their removal from durable audit rows.
- [ ] A sample of retained signed artifacts and audit chains re-verifies under
5.0.0. Artifacts that now fail were not bound to their signature before.
Verify Source Link
After publication:
./scripts/Validate-Source-Link-commit-metadata.ps1 -Version 5.0.0
Each package should report repository type git, the canonical repository URL,
and a non-empty repository commit associated with the final v5.0.0 source.
Verify template fallback references
Fallback package references should use 5.0.0 for
AsiBackbone.AspNetCore, AsiBackbone.Core,
AsiBackbone.Storage.InMemory, and AsiBackbone.Analyzers.
Hosts scaffolding the web API template should note that its sample capability validator now denies by default and the template registers no authentication scheme, so the scaffold refuses callers until its owner adds one.
Verify security advisory status
5.0.0 is the fixed version for the advisories published against this
repository, including GHSA-q63q-xcvp-chv8 (critical) and
GHSA-p6pw-5gr3-xrr7 (high). Each records an affected range of <= 4.0.0.
As of 2026-09-08, those repository advisories had not yet appeared in the
global GitHub Advisory Database. GitHub documents that repository-advisory
review for global inclusion can take up to 72 hours. Until a global entry is
observable, the absence of a Dependabot alert, NuGet vulnerability banner, or
dotnet list package --vulnerable result must not be interpreted as evidence
that 4.0.0 or an earlier affected version is safe. Repository advisories and
the 5.0.0 security-release guidance remain the authoritative project notice
during that curation window.
Maintainers can audit the distribution state with:
./scripts/Manage-SecurityAdvisoryDistribution.ps1
Consumers who cannot upgrade immediately should apply the host mitigation each
advisory describes: reconstruct the canonical payload with
CanonicalPayloadBuilder, recompute the hash with
CanonicalPayloadHasher.ComputeHash, and compare it to the stored signing hash
before treating a verification outcome as authoritative, as the
regulated storage and signing verification checklist
describes. That mitigation is a host-side compensating control, not a fix.
Verify release evidence
Download the durable v5.0.0 evidence from the public release:
The attached SPDX documents and manifests are publicly downloadable and do not expire with GitHub Actions artifact retention. Verify a downloaded package or SBOM against its workflow provenance with:
gh attestation verify ./AsiBackbone.Core.5.0.0.nupkg --repo AsiBackbone/AsiBackbone
gh attestation verify ./AsiBackbone.Core.5.0.0.spdx.json --repo AsiBackbone/AsiBackbone
- package and template versions resolve to
5.0.0; - package IDs, repository metadata, and
net10.0assets are present; - the security-relevant upgrade steps above are complete for the deployed host;
- package SBOMs and provenance come from the release workflow for the tagged commit;
- NuGet package signing is understood as deferred;
- consumer-specific source review, vulnerability scanning, package-cache controls, and operational approval are complete.
SBOM and provenance artifacts are release evidence. They do not by themselves prove package signing, vulnerability absence, production tamper evidence, legal non-repudiation, or compliance approval.
The dated NuGet Package Signing Decision Record defines the accepted residual risk, compensating controls, next review boundary, and mandatory early re-evaluation criteria for that deferral.
Verifying this release does not establish that a host's own governed execution paths are correct. The framework failing closed is a precondition for that argument, not the argument itself.