high · CVSS v3 7.5
CVE-2026-95692
OpenSSL 3.5.x incorrectly handles IV lengths for AES‑GCM‑SIV, causing a heap out‑of‑bounds read and allowing IV truncation forgery. The flaw
Overview
OpenSSL 3.5.x incorrectly handles IV lengths for AES‑GCM‑SIV, causing a heap out‑of‑bounds read and allowing IV truncation forgery. The flaw can crash applications or enable message forgery when non‑standard IVs are used. It affects any code that calls EVP_CipherInit_ex() with a non‑12‑byte IV.
Description
Issue summary: Setting an AES-GCM-SIV IV shorter than the expected nonce length via EVP_CipherInit_ex() may trigger a heap out-of-bounds read. Supplying a longer IV is silently truncated instead of rejected. Impact summary: An application passing a caller-supplied IV of the wrong length may crash or read beyond its buffer. Because trailing IV bytes are ignored, an attacker who knows one message and tag may forge messages under a different IV. CWE: CWE-125: Out-of-bounds Read Description: AES-GCM-SIV copies the caller-supplied IV or nonce into its internal state using a copy whose length is taken from the expected nonce size rather than from the length the caller actually provided. When the caller passes a shorter IV, the copy reads past the end of the caller's buffer; AddressSanitizer confirms a heap out-of-bounds read reached through EVP_CipherInit_ex() into ossl_aes_gcm_siv_init(). When the caller passes a longer IV, the implementation silently discards the trailing bytes instead of rejecting the length. The truncation breaks the binding between the IV and the computed authentication tag. An attacker who has observed a message and its tag under one IV can produce a message and tag that verify under a different IV whose first bytes match, since the surplus bytes never influence the computation. The message itself is unchanged, so this is a failure of IV commitment rather than a classic existential forgery. Only applications that call EVP_CipherInit_ex() (or the equivalent provider cipher initialization) with an IV length other than the standard 12 bytes for AES-GCM-SIV are affected. The severity is limited because the out-of-bounds read is small and attacker-controlled only in length, and the forgery requires an unusual IV length choice by the application. FIPS impact: no The FIPS modules are not affected by this issue, as AES-GCM-SIV is not an approved algorithm. Fixed in OpenSSL 3.5.10 (Affected since 3.5.0).
Impact
The vulnerability compromises confidentiality and integrity by allowing attackers to forge authentication tags for messages with altered IVs, and can lead to denial‑of‑service via crashes. Defenders using OpenSSL 3.5.x must ensure IVs are exactly 12 bytes and monitor for anomalous memory reads. The issue is limited to applications that supply custom IVs; standard usage with 12‑byte IVs remains safe.
Remediation
Upgrade OpenSSL to 3.5.10 or later where the bug is fixed. If upgrading is not immediately possible, validate IV length before calling EVP_CipherInit_ex() and reject any IV that is not 12 bytes. Consider disabling AES‑GCM‑SIV or switching to a different mode until the patch is applied.
Risk context
Severity is high with a CVSS v3 score of 7.5. No EPSS data is available, but the flaw can cause crashes or message forgery in vulnerable builds, warranting prompt patching.
Affected products
- OpenSSL 3.5.0
- OpenSSL 3.5.1
- OpenSSL 3.5.2
- OpenSSL 3.5.3
- OpenSSL 3.5.4
- OpenSSL 3.5.5
- OpenSSL 3.5.6
- OpenSSL 3.5.7
Scores
- Severity
- high
- CVSS v2
- 6.4
- CVSS v3
- 7.5
- CVSS v4
- —
- EPSS
- —