Paper 2026/192 Original: eprint.iacr.org/2026/192 ↗

Verification Theatre: False Assurance in Formally Verified Cryptographic Libraries

Nadim Kobeissi
Abstract

Every formally verified system embeds a verification boundary: the interface between code with machine-checked proofs and code that is trusted without them. We study what happens when this boundary is not communicated clearly. Through a case study of CE Labs's libcrux and hpke-rs cryptographic libraries, we present thirteen vulnerabilities that escaped formal verification. Nine reside in unverified code, including a cross-backend endianness bug that caused real decryption failures in Signal's post-quantum ratchet, a missing mandatory X25519 validation, nonce reuse via integer overflow, and two FIPS~204 specification violations in the ML-DSA verifier. Four reside in formally verified specification and proof code: in ML-KEM, a wrong decompression constant, a missing inverse NTT, and a false serialization proof; in ML-DSA, a wrong multiplication specification that renders axiomatized AVX2 proofs unsound. From these findings, we develop a taxonomy of five verification boundary failure types, a lightweight auditing methodology for detecting them, and a comparative analysis with AWS's verified libcrypto. The same failure types arise in both projects, but their management---through systematic documentation, proof execution in CI, and clear scope communication---varies significantly. We call the gap between verification claims and verification reality "verification theatre", and propose concrete practices for closing it.

Metadata
Available format(s)
PDF
Category
Attacks and cryptanalysis
Publication info
Preprint.
History
2026-06-25: last updated
2026-02-05: published
Short URL
https://ia.cr/2026/192
License
https://creativecommons.org/licenses/by/4.0/

BibTeX

@misc{cryptoeprint:2026/192,
      author = {Nadim Kobeissi},
      title = {Verification Theatre: False Assurance in Formally Verified Cryptographic Libraries},
      howpublished = {Cryptology {ePrint} Archive, Paper 2026/192},
      year = {2026},
      url = {https://eprint.iacr.org/2026/192}
}
Note: In order to protect the privacy of readers, this archive does not use cookies or embedded third party content.