24 lines
1.4 KiB
Markdown
24 lines
1.4 KiB
Markdown
# crypto2 0.9.5 security fix
|
|
|
|
`Multikey.Keys.check` now counts distinct authorized signer keys. Earlier versions
|
|
could count repeated copies of one allowed key toward an N-of-M threshold.
|
|
A serialized `SealedBox` containing repeated copies of a valid seal could therefore
|
|
pass threshold authorization without the required distinct signers. Signature
|
|
verification itself was not forged. Policies built with `someOf` or `allOf`,
|
|
including these thresholds inside nested expressions, were affected.
|
|
|
|
Upgrade consumers to 0.9.5. Wire formats and public APIs are unchanged. Repeated
|
|
seals remain readable but cannot supply extra votes. Boolean expression semantics
|
|
(including intentionally overlapping branches) are unchanged.
|
|
|
|
Regression coverage includes exhaustive subsets for one through four required
|
|
keys, duplicate and unauthorized signers, nested policies, and serialized seal
|
|
repetition with valid distinct-signature controls.
|
|
|
|
Release qualification: all 64 JVM tests and all 64 Linux x64 native tests pass.
|
|
The JavaScript/Node suite cannot complete: 61 of 64 tests fail at the existing
|
|
libsodium loader (`_sodium_init is not a function`). An unchanged-source signing
|
|
test reproduces that same failure; this release does not fix the JS loader.
|
|
All 12 configured publications were uploaded to Maven Local and the private Maven
|
|
repository; SHA-256 comparison of 53 downloaded release files matched Maven Local.
|