Impact
The cryptography library omitted verification that input points belong to the prime‑order subgroup during key construction. Attackers can supply a point from a small‑subgroup curve. When used in ECDSA, this allows forging signatures; when used in ECDH it leaks the private key modulo the small subgroup, revealing least significant bits for curves with a cofactor greater than one. The vulnerability affects only SECT curves and can compromise signature verification or key agreement implementations that rely on pyca:cryptography.
Affected Systems
Python applications that import the cryptography package before version 46.0.5 and use the public_key_from_numbers, EllipticCurvePublicNumbers.public_key, load_der_public_key, or load_pem_public_key functions with SECT curves are vulnerable. Users of the library for ECDSA or ECDH operations are impacted.
Risk and Exploitability
With an 8.2 CVSS score, the flaw is high severity. The EPSS score is under 1 %, indicating a low current exploitation probability, and it is not listed in the CISA KEV catalog. An attacker can exploit it by supplying a crafted public key to any endpoint or library that loads or verifies a key via the affected functions. The attack is feasible in both remote environments (where a client can supply a malicious public key) and local contexts (if local code uses vulnerable functions).
OpenCVE Enrichment
Github GHSA
Ubuntu USN