Mark RUSTSEC-2026-0273 as patched in manzana 0.3.0 - #3193
Conversation
|
|
||
| There are currently (as of `2026-04-07`) no versions of the crate that contain either a real implementation, or a warning about the stubbed cryptography. | ||
|
|
||
| ## Resolution |
There was a problem hiding this comment.
I don't think any of the added advisory contents are useful here. You can explain this stuff in the 0.3.0 release notes.
|
@djc friendly ping on this one when you have a moment. It marks RUSTSEC-2026-0273 as patched in manzana 0.3.0. Status since the advisory was assigned:
Happy to adjust the entry if you would prefer a different shape (for example |
|
I already added review feedback: |
manzana 0.3.0 fixes this by REMOVING the cryptography rather than implementing it: the secure_enclave module and the Security-framework FFI are deleted, the crate exports no key/signature/signer type, makes no Security framework call, and declares no cryptography dependency. Users wanting Secure Enclave or Keychain access are pointed at security-framework. 0.1.0 and 0.2.0 remain yanked. Also drops arch = ["aarch64"] from [affected]. The affected code was not aarch64-specific: is_available() was a compile-time #[cfg(target_os = "macos")] true with no runtime probe, so it returned true on x86_64 macOS hosts with no Secure Enclave, and sign()/verify() fabricated there exactly as on Apple Silicon. The narrower constraint meant cargo audit did not warn Intel Mac users who were equally affected. I am the maintainer of manzana. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UEZBKZ9aLfXqppSVvBfwC2
82bdda2 to
579a0e5
Compare
|
Done — dropped the added prose; the diff is now just the two metadata lines ( The |
manzana 0.3.0 is published and fixes this advisory. I am the maintainer of manzana.
patched = [">= 0.3.0"]
Fixed by removing the cryptography rather than implementing it. The
secure_enclavemodule and the Security-framework FFI are deleted. 0.3.0 exports no key, signature or signer type, makes no Security framework call, and declares no cryptography dependency. Users wanting Secure Enclave or Keychain access are pointed atsecurity-framework.Implementing it properly needs an Apple Developer account and a code-signed binary with a Team ID; without one
SecKeyCreateRandomKeyreturnserrSecInteractionNotAllowed. Publishing cryptography that cannot be executed end-to-end is how this happened in the first place.0.1.0 and 0.2.0 remain yanked.
Also dropping
arch = ["aarch64"]The affected code was not aarch64-specific, and the narrower constraint under-reported who was exposed.
SecureEnclaveSigner::is_available()was#[cfg(target_os = "macos")] true— a compile-time constant with no runtime probe — so it returnedtrueon x86_64 macOS hosts with no Secure Enclave at all, andsign()/verify()"succeeded" there exactly as they did on Apple Silicon. Intel Mac users were equally affected and, witharch = ["aarch64"]set, were not warned bycargo audit.os = ["macos"]is kept.Note
Auditing for the reported defect turned up the same fabricate-a-plausible-value pattern outside the module this advisory names —
neural_engine::infer()returningTensor::zeros(input.shape),capabilities()returning one chip's published figures on every chip,metal::dispatch()returningOk(())having dispatched nothing. All removed in the same release; every operation that cannot reach hardware now returnsErr(Error::Unimplemented). Mentioned only for context — none of it changes the scope of this advisory, which is about the Secure Enclave signer.Repository: https://github.com/paiml/manzana
Report: paiml/manzana#3