Skip to main content
Back to docs
PQC-GO-AST-003PQC-IAC-003PQC-TYPESCRIPT-002HIGHCNSA 2.0 · FIPS 203

Quantum-Vulnerable Elliptic Curves (ECC)

Severity: HIGH

Elliptic-curve cryptography (ECDSA, ECDH, curves such as P-256, secp256k1, Curve25519) is approved today under FIPS 186-5 and SP 800-56A, but its discrete-log problem falls to Shor's algorithm, so CNSA 2.0 requires migration to ML-KEM and ML-DSA for national security systems. The Go AST scanner flags crypto/ecdsa, crypto/ecdh, and crypto/elliptic imports (PQC-GO-AST-003); IaC rules flag ECDHE cipher-suite configuration (PQC-IAC-003); WebCrypto usage is flagged by PQC-TYPESCRIPT-002; and per-language regex rules (for example PQC-JAVA-003, PQC-PYTHON-006, PQC-CPP-006) flag curve names and EC key generation elsewhere. These findings are reported as planned-migration items, not as broken cryptography.

Remediation checklist

  • Plan key-establishment migration to ML-KEM-768 or ML-KEM-1024 (FIPS 203).
  • For TLS, deploy the hybrid X25519MLKEM768 key exchange so classical and post-quantum security hold simultaneously.

Code examples

Vulnerable — classical ECDH curve preference

// P-256 key agreement falls to Shor's algorithm
config.CurvePreferences = []tls.CurveID{
  tls.CurveP256,
}

Migration direction — hybrid X25519 + ML-KEM-768 (Go 1.24+)

// Hybrid handshake keeps classical + PQC security
config.CurvePreferences = []tls.CurveID{
  tls.X25519MLKEM768,
}

Preview remediation proposals

Preview proposed changes free with ciphermap fix --dry-run. Narrow MD5/SHA-1-to-SHA-256 proposals cover supported Go, Python, and Node ESM call shapes. RSA, protocol, persisted-digest, and unsupported migrations are declined with a reason. Proposal preview is Free. Production source publication remains disabled until the isolated Gate 2 transaction and recovery evidence are promoted; a Tier B licence does not enable apply actions in this release.

View DevSecOps pricing

Other rule families