135 lines
8.5 KiB
JSON
135 lines
8.5 KiB
JSON
{
|
|
"dataType": "CVE_RECORD",
|
|
"dataVersion": "5.2",
|
|
"cveMetadata": {
|
|
"cveId": "CVE-2026-95692",
|
|
"assignerOrgId": "3a12439a-ef3a-4c79-92e6-6081a721f1e5",
|
|
"state": "PUBLISHED",
|
|
"assignerShortName": "openssl",
|
|
"dateReserved": "2026-09-22T14:18:48.635Z",
|
|
"datePublished": "2026-11-10T18:16:18.675Z",
|
|
"dateUpdated": "2026-11-10T18:16:18.675Z"
|
|
},
|
|
"containers": {
|
|
"cna": {
|
|
"affected": [
|
|
{
|
|
"defaultStatus": "unaffected",
|
|
"product": "OpenSSL",
|
|
"vendor": "OpenSSL",
|
|
"versions": [
|
|
{
|
|
"lessThan": "4.1.1",
|
|
"status": "affected",
|
|
"version": "4.1.0",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"lessThan": "4.0.4",
|
|
"status": "affected",
|
|
"version": "4.0.0",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"lessThan": "3.5.10",
|
|
"status": "affected",
|
|
"version": "3.5.0",
|
|
"versionType": "semver"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"credits": [
|
|
{
|
|
"lang": "en",
|
|
"type": "reporter",
|
|
"value": "Billy Brumley (Rochester Institute of Technology)"
|
|
},
|
|
{
|
|
"lang": "en",
|
|
"type": "remediation developer",
|
|
"value": "Billy Brumley (Rochester Institute of Technology)"
|
|
}
|
|
],
|
|
"datePublic": "2026-11-10T11:00:00.000Z",
|
|
"descriptions": [
|
|
{
|
|
"lang": "en",
|
|
"supportingMedia": [
|
|
{
|
|
"base64": false,
|
|
"type": "text/html",
|
|
"value": "Issue summary: Setting an AES-GCM-SIV IV shorter than the expected nonce<br>length via EVP_CipherInit_ex() may trigger a heap out-of-bounds read.<br>Supplying a longer IV is silently truncated instead of rejected.<br><br>Impact summary: An application passing a caller-supplied IV of the wrong<br>length may crash or read beyond its buffer. Because trailing IV bytes are<br>ignored, an attacker who knows one message and tag may forge messages under a<br>different IV.<br><br>CWE: CWE-125: Out-of-bounds Read<br><br>Description: AES-GCM-SIV copies the caller-supplied IV or nonce into its<br>internal state using a copy whose length is taken from the expected nonce size<br>rather than from the length the caller actually provided. When the caller<br>passes a shorter IV, the copy reads past the end of the caller's buffer;<br>AddressSanitizer confirms a heap out-of-bounds read reached through<br>EVP_CipherInit_ex() into ossl_aes_gcm_siv_init(). When the caller passes a<br>longer IV, the implementation silently discards the trailing bytes instead of<br>rejecting the length.<br><br>The truncation breaks the binding between the IV and the computed<br>authentication tag. An attacker who has observed a message and its tag under<br>one IV can produce a message and tag that verify under a different IV whose<br>first bytes match, since the surplus bytes never influence the computation.<br>The message itself is unchanged, so this is a failure of IV commitment rather<br>than a classic existential forgery.<br><br>Only applications that call EVP_CipherInit_ex() (or the equivalent provider<br>cipher initialization) with an IV length other than the standard 12 bytes for<br>AES-GCM-SIV are affected. The severity is limited because the out-of-bounds<br>read is small and attacker-controlled only in length, and the forgery requires<br>an unusual IV length choice by the application.<br><br>FIPS impact: no<br>The FIPS modules are not affected by this issue, as AES-GCM-SIV is not an<br>approved algorithm."
|
|
}
|
|
],
|
|
"value": "Issue summary: Setting an AES-GCM-SIV IV shorter than the expected nonce\nlength via EVP_CipherInit_ex() may trigger a heap out-of-bounds read.\nSupplying a longer IV is silently truncated instead of rejected.\n\nImpact summary: An application passing a caller-supplied IV of the wrong\nlength may crash or read beyond its buffer. Because trailing IV bytes are\nignored, an attacker who knows one message and tag may forge messages under a\ndifferent IV.\n\nCWE: CWE-125: Out-of-bounds Read\n\nDescription: AES-GCM-SIV copies the caller-supplied IV or nonce into its\ninternal state using a copy whose length is taken from the expected nonce size\nrather than from the length the caller actually provided. When the caller\npasses a shorter IV, the copy reads past the end of the caller's buffer;\nAddressSanitizer confirms a heap out-of-bounds read reached through\nEVP_CipherInit_ex() into ossl_aes_gcm_siv_init(). When the caller passes a\nlonger IV, the implementation silently discards the trailing bytes instead of\nrejecting the length.\n\nThe truncation breaks the binding between the IV and the computed\nauthentication tag. An attacker who has observed a message and its tag under\none IV can produce a message and tag that verify under a different IV whose\nfirst bytes match, since the surplus bytes never influence the computation.\nThe message itself is unchanged, so this is a failure of IV commitment rather\nthan a classic existential forgery.\n\nOnly applications that call EVP_CipherInit_ex() (or the equivalent provider\ncipher initialization) with an IV length other than the standard 12 bytes for\nAES-GCM-SIV are affected. The severity is limited because the out-of-bounds\nread is small and attacker-controlled only in length, and the forgery requires\nan unusual IV length choice by the application.\n\nFIPS impact: no\nThe FIPS modules are not affected by this issue, as AES-GCM-SIV is not an\napproved algorithm."
|
|
}
|
|
],
|
|
"metrics": [
|
|
{
|
|
"format": "other",
|
|
"other": {
|
|
"content": {
|
|
"text": "Low"
|
|
},
|
|
"type": "https://openssl-library.org/policies/general/security-policy/"
|
|
}
|
|
}
|
|
],
|
|
"problemTypes": [
|
|
{
|
|
"descriptions": [
|
|
{
|
|
"cweId": "CWE-125",
|
|
"description": "CWE-125 Out-of-bounds Read",
|
|
"lang": "en",
|
|
"type": "CWE"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"providerMetadata": {
|
|
"orgId": "3a12439a-ef3a-4c79-92e6-6081a721f1e5",
|
|
"shortName": "openssl",
|
|
"dateUpdated": "2026-11-10T18:16:18.675Z"
|
|
},
|
|
"references": [
|
|
{
|
|
"name": "OpenSSL Advisory",
|
|
"tags": [
|
|
"vendor-advisory"
|
|
],
|
|
"url": "https://openssl-library.org/news/secadv/20261110.txt"
|
|
},
|
|
{
|
|
"name": "4.1.1 git commit",
|
|
"tags": [
|
|
"patch"
|
|
],
|
|
"url": "https://github.com/openssl/openssl/commit/70a47ac78b6f3be1b22fb1551bd0bfcff4f29613"
|
|
},
|
|
{
|
|
"name": "4.0.4 git commit",
|
|
"tags": [
|
|
"patch"
|
|
],
|
|
"url": "https://github.com/openssl/openssl/commit/510872388f5d145cf870868b3d288a23822cb776"
|
|
},
|
|
{
|
|
"name": "3.5.10 git commit",
|
|
"tags": [
|
|
"patch"
|
|
],
|
|
"url": "https://github.com/openssl/openssl/commit/257a3427aa0ef8d9dd2ef5b3e2d1c021a221b116"
|
|
}
|
|
],
|
|
"source": {
|
|
"discovery": "UNKNOWN"
|
|
},
|
|
"title": "Out-of-Bounds Read and Incorrect IV Length Handling in AES-GCM-SIV",
|
|
"x_generator": {
|
|
"engine": "Vulnogram 0.2.0"
|
|
}
|
|
}
|
|
}
|
|
} |