CVE-2025-69418: Unauthenticated/unencrypted trailing bytes with low-level OCB function calls
Issue summary: When using the low-level OCB API directly with AES-NI or<br>other hardware-accelerated code paths, inputs whose length is not a multiple<br>of 16 bytes can leave the final partial block unencrypted and unauthenticated.<br><br>Impact summary: The trailing 1-15 bytes of a message may be exposed in<br>cleartext on encryption and are not covered by the authentication tag,<br>allowing an attacker to read or tamper with those bytes without detection.<br><br>The low-level OCB encrypt and decrypt routines in the hardware-accelerated<br>stream path process full 16-byte blocks but do not advance the input/output<br>pointers. The subsequent tail-handling code then operates on the original<br>base pointers, effectively reprocessing the beginning of the buffer while<br>leaving the actual trailing bytes unprocessed. The authentication checksum<br>also excludes the true tail bytes.<br><br>However, typical OpenSSL consumers using EVP are not affected because the<br>higher-level EVP and provider OCB implementations split inputs so that full<br>blocks and trailing partial blocks are processed in separate calls, avoiding<br>the problematic code path. Additionally, TLS does not use OCB ciphersuites.<br>The vulnerability only affects applications that call the low-level<br>CRYPTOocb128encrypt() or CRYPTOocb128decrypt() functions directly with<br>non-block-aligned lengths in a single call on hardware-accelerated builds.<br>For these reasons the issue was assessed as Low severity.<br><br>The FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.2, 3.1 and 3.0 are not affected<br>by this issue, as OCB mode is not a FIPS-approved algorithm.<br><br>OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0 and 1.1.1 are vulnerable to this issue.<br><br>OpenSSL 1.0.2 is not affected by this issue.
Other sources
Issue summary: When using the low-level OCB API directly with AES-NI orbrother hardware-accelerated code paths, inputs whose length is not a multiplebrof 16 bytes can leave the final partial block unencrypted and unauthenticated.brbrImpact summary: The trailing 1-15 bytes of a message may be exposed inbrcleartext on encryption and are not covered by the authentication tag,brallowing an attacker to read or tamper with those bytes without detection.brbrThe low-level OCB encrypt and decrypt routines in the hardware-acceleratedbrstream path process full 16-byte blocks but do not advance the input/outputbrpointers. The subsequent tail-handling code then operates on the originalbrbase pointers, effectively reprocessing the beginning of the buffer whilebrleaving the actual trailing bytes unprocessed. The authentication checksumbralso excludes the true tail bytes.brbrHowever, typical OpenSSL consumers using EVP are not affected because thebrhigher-level EVP and provider OCB implementations split inputs so that fullbrblocks and trailing partial blocks are processed in separate calls, avoidingbrthe problematic code path. Additionally, TLS does not use OCB ciphersuites.brThe vulnerability only affects applications that call the low-levelbrCRYPTOocb128encrypt() or CRYPTOocb128decrypt() functions directly withbrnon-block-aligned lengths in a single call on hardware-accelerated builds.brFor these reasons the issue was assessed as Low severity.brbrThe FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.2, 3.1 and 3.0 are not affectedbrby this issue, as OCB mode is not a FIPS-approved algorithm.brbrOpenSSL 3.6, 3.5, 3.4, 3.3, 3.0 and 1.1.1 are vulnerable to this issue.brbrOpenSSL 1.0.2 is not affected by this issue.
— IBM
The trailing 1-15 bytes of a message may be exposed in cleartext on encryption and are not covered by the authentication tag, allowing an attacker to read or tamper with those bytes without detection.
The low-level OCB encrypt and decrypt routines in the hardware-accelerated stream path process full 16-byte blocks but do not advance the input/output pointers. The subsequent tail-handling code then operates on the original base pointers, effectively reprocessing the beginning of the buffer while leaving the actual trailing bytes unprocessed. The authentication checksum also excludes the true tail bytes.
However, typical OpenSSL consumers using EVP are not affected because the higher-level EVP and provider OCB implementations split inputs so that full blocks and trailing partial blocks are processed in separate calls, avoiding the problematic code path. Additionally, TLS does not use OCB ciphersuites. The vulnerability only affects applications that call the low-level CRYPTOocb128encrypt() or CRYPTOocb128decrypt() functions directly with non-block-aligned lengths in a single call on hardware-accelerated builds. For these reasons the issue was assessed as Low severity.
The FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.2, 3.1 and 3.0 are not affected by this issue, as OCB mode is not a FIPS-approved algorithm.
OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0 and 1.1.1 are vulnerable to this issue.
OpenSSL 1.0.2 is not affected by this issue.
OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1.
OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5.
OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4.
OpenSSL 3.3 users should upgrade to OpenSSL 3.3.6.
OpenSSL 3.0 users should upgrade to OpenSSL 3.0.19.
OpenSSL 1.1.1 users should upgrade to OpenSSL 1.1.1ze. (premium support customers only).
— Red Hat
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.1.1ze - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 3.0.19 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 3.3.6 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 3.4.4 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 3.5.5 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 3.6.1
Event History
Frequently Asked Questions
What is the severity of CVE-2025-69418?
CVE-2025-69418 has a severity rating of high due to the risks associated with unauthenticated and unencrypted data.
How do I fix CVE-2025-69418?
To fix CVE-2025-69418, update to a patched version of OpenSSL that addresses the trailing bytes issue.
Which versions of OpenSSL are affected by CVE-2025-69418?
CVE-2025-69418 affects OpenSSL versions from 1.1.1 to under 1.1.1ze and versions 3.0.x through 3.6.x.
What are the potential consequences of CVE-2025-69418?
The potential consequences of CVE-2025-69418 include exposure of sensitive data due to partial blocks being left unencrypted.
Is CVE-2025-69418 an easy vulnerability to exploit?
CVE-2025-69418 is considered exploitable by attackers due to the low-level API access and lack of proper encryption.