CVE-2026-76234 Overview
CVE-2026-76234 affects the libcrux Rust cryptography library, specifically the libcrux-ecdh, libcrux-ed25519, and libcrux-psq crates. The libcrux-ecdh crate fails to properly validate length and clamping during X25519 secret validation. It also contains a broken clamping check for imported X25519 secret keys. The libcrux-ed25519 crate performs a duplicated clamping step during key generation. The libcrux-psq crate panics instead of propagating an AEADError. These flaws are classified under [CWE-347] (Improper Verification of Cryptographic Signature).
Critical Impact
Attackers can trigger availability failures in applications relying on libcrux cryptographic primitives, and cryptographic operations may not behave as specified.
Affected Products
- libcrux-ecdh before 0.0.6
- libcrux-ed25519 before 0.0.6
- libcrux-psq before 0.0.7
Discovery Timeline
- 2026-08-19 - CVE-2026-76234 published to NVD
- 2026-08-21 - Last updated in NVD database
Technical Details for CVE-2026-76234
Vulnerability Analysis
CVE-2026-76234 spans three separate cryptographic implementation defects across the libcrux ecosystem. The libcrux-ecdh crate omits proper length validation on X25519 secret material. It also fails to enforce clamping requirements during secret validation and mishandles the clamping check for imported X25519 secret keys.
X25519 clamping is a required bit-manipulation step defined in RFC 7748. Skipping or incorrectly implementing clamping can allow scalars outside the specified subgroup, weakening key agreement guarantees. The libcrux-ed25519 crate applies a duplicated clamping step during key generation, deviating from the specification.
The libcrux-psq crate handles authenticated encryption incorrectly. Instead of returning an AEADError value to the caller, it panics. A panic on cryptographic error terminates the calling thread and produces a denial-of-service condition in downstream applications.
Root Cause
The root cause is inconsistent adherence to the X25519 and Ed25519 specifications combined with unsafe Rust error handling in libcrux-psq. Missing length checks, absent clamping enforcement, and duplicated clamping operations all reflect defects in cryptographic primitive validation.
Attack Vector
The vulnerabilities are exposed over the network wherever libcrux is used to negotiate keys or verify cryptographic material. A remote attacker who supplies crafted key material or triggers an AEAD decryption failure in libcrux-psq can induce a panic and disrupt the target process. No authentication or user interaction is required.
See the GitHub Security Advisory and the VulnCheck Advisory on Libcrux for the vendor description of each defect.
Detection Methods for CVE-2026-76234
Indicators of Compromise
- Unexpected process termination or panic messages originating from Rust binaries linking libcrux-psq.
- Application logs referencing AEADError handling failures or aborted PSQ sessions.
- Repeated failed X25519 or Ed25519 key negotiation attempts from a single remote source.
Detection Strategies
- Inventory Rust dependencies with cargo tree or SBOM tooling to identify libcrux-ecdh, libcrux-ed25519, and libcrux-psq versions in use.
- Alert on crash telemetry for services embedding libcrux following crafted network input.
- Correlate cryptographic handshake failures with subsequent process restarts in service logs.
Monitoring Recommendations
- Ingest application crash and panic logs into a central data lake for correlation across hosts.
- Track dependency versions continuously and flag builds that pin vulnerable libcrux crate versions.
- Monitor network endpoints exposing PSQ or ECDH handshakes for anomalous error rates.
How to Mitigate CVE-2026-76234
Immediate Actions Required
- Upgrade libcrux-ecdh and libcrux-ed25519 to version 0.0.6 or later.
- Upgrade libcrux-psq to version 0.0.7 or later.
- Rebuild and redeploy any Rust binaries or services that statically link the affected crates.
- Audit applications for direct calls that import X25519 secret keys and revalidate stored key material after upgrade.
Patch Information
The maintainers released fixes in libcrux-ecdh 0.0.6, libcrux-ed25519 0.0.6, and libcrux-psq 0.0.7. Refer to the GitHub Security Advisory for the full patch commit set and release notes.
Workarounds
- No supported workaround exists for the clamping and length validation defects; upgrade is required.
- For libcrux-psq, wrap calls in supervisory processes that restart on panic until the upgrade to 0.0.7 is deployed.
- Restrict network exposure of services using vulnerable versions to trusted peers until patched.
# Configuration example
# Update Cargo.toml to require patched versions
# libcrux-ecdh = ">=0.0.6"
# libcrux-ed25519 = ">=0.0.6"
# libcrux-psq = ">=0.0.7"
cargo update -p libcrux-ecdh
cargo update -p libcrux-ed25519
cargo update -p libcrux-psq
cargo audit
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

