Rust advisories / pkcs11
UnsoundRUSTSEC-2022-0034 · pkcs11
RUSTSEC-2022-0034: Safety issues in `pkcs11`
Short answerpkcs11 has an API that can cause undefined behaviour from safe code: Safety issues in `pkcs11`. No fixed version yet.
| Crate | pkcs11 |
|---|---|
| Type | Unsound (code-execution, memory-corruption, crypto-failure) |
| Affected versions | Every version. |
| Fixed in | none |
| Severity | not scored |
| Published | 2022-07-22 |
| Last changed | 2022-07-25 |
| Also known as | none |
What to do
- Find who pulls it in:
cargo tree -i pkcs11. - Avoid the affected API, or replace the crate.
Details from the advisory
Impact
The interface of pkcs11 is subject to a number of safety issues, mainly related to handling of raw pointers. Despite presenting a safe interface, many of the functions and methods that rely on inputs which contain pointers (attributes and mechanisms in particular) can lead to segmentation faults and undefined behaviour when those pointers get dereferenced. For more details see the issues referenced below.
Other problems that have been identified by the community include use-after-free (mheese/rust-pkcs11#53) and unsound uses of transmute_copy (mheese/rust-pkcs11#55).
Workarounds
Users of the crate need to be _extremely_ careful in all the calls made to avoid segmentation faults and undefined behaviour due to use of stale pointers. Whenever a pointer is derived from a value and passed to the library, that value's lifetime must be guaranteed to outlast all calls that rely on the pointer. For example, users should **avoid** creating or converting values within a separate scope (say, in a dedicated function), deriving a pointer, then extracting the pointer from that scope leaving the value to get dropped before passing the pointer to pkcs11.
References
- mheese/rust-pkcs11#38
- mheese/rust-pkcs11#53
- mheese/rust-pkcs11#55
- mheese/rust-pkcs11#54
- mheese/rust-pkcs11#50
References
- Package: crates.io/crates/pkcs11
- Advisory: rustsec.org/advisories/RUSTSEC-2022-0034.html
- Report: github.com/mheese/rust-pkcs11/issues/57
From the RustSec Advisory Database (CC0-1.0) via the OSV export, downloaded Oct 24, 2026. Severity score computed from the published CVSS vector.
Up next
Are you affected?Check your whole dependency treePaste Cargo.lock: every advisory, for your exact versions.Read it next →Also worth your time
Did this answer your question?