chore(release): 0.6.1 - #246
Merged
Merged
Conversation
Closes a crash in verify_manifest() reachable from untrusted input on a default install: a manifest declaring ML-DSA-65 or hybrid crashed the engine with an uncaught RuntimeError because pyoqs is an optional extra. It now returns UNVERIFIABLE with the reason recorded. Also carries the ADR-0005 amendment, ADR-0011 and its accepted decision to move the envelope to COSE_Sign1 in v0.2, spec section 10.5 mapping the manifest onto SCITT terms, and the missing-algorithm fix. No change to how manifests are signed or to any existing verification result. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Patch release for the crash fixed in #245, which is reachable from untrusted input in the currently published 0.6.0.
Why a release now rather than waiting
pqis an optional extra, so the default install cannot appraise post-quantum signatures. In every published version with PQ support, a manifest declaringML-DSA-65orhybrid-Ed25519-ML-DSA-65crashedverify_manifest()with an uncaughtRuntimeErrorinstead of returning a verdict. A verification endpoint answers 500 to an attacker-supplied manifest; no key material and no valid signature are needed to trigger it. cmcp and ca2a both consume this verifier through the published package, so the fix does nothing for them until it ships.Contents
Fixed
UNVERIFIABLEwith the reason recorded as a warning, never an exception and neverMISMATCH(fix(verify): return UNVERIFIABLE when an algorithm is unavailable; amend ADR-0005 #245).signatureblock with noalgorithmno longer falls back to Ed25519; a missing identifier is asignature.algorithmmismatch (docs(adr): ADR-0011, the manifest is a signed document not a JWT/JOSE profile #241).Documentation and spec
UNVERIFIABLErather thanINCOMPATIBLE_VERSION(fix(verify): return UNVERIFIABLE when an algorithm is unavailable; amend ADR-0005 #245).UNVERIFIABLErequirement, and three corrected factual errors including EAT cited as RFC 9528.Nothing here changes how a manifest is signed. No previously
VALIDmanifest becomes invalid: the two verifier changes affect a path that used to crash and a path that used to silently assume Ed25519.Verification
python -m buildplustwine check: both artifacts PASSED for 0.6.1After merge: tag
python-v0.6.1to trigger the OIDC publish, then confirm the fix from the installed PyPI package rather than from the local tree.