CVE-2025-69418CVE-2025-69418是OpenSSL中的一个中等严重性安全漏洞,源于OCB(Offset Ciphertext Block Chaining)模式在处理非16字节对齐输入时的实现缺陷。当使用低级别OCB API直接调用时,在AES-NI或硬件加速代码路径下,长度不为16字节倍数的输入会导致最后1-15字节未被加密和认证处理。攻击者可利用此漏洞读取或篡改这些未受保护的字节而不被发现。该漏洞仅影响直接调用CRYPTO_ocb128_encrypt()或CRYPTO_ocb128_decrypt()函数的应用程序,使用高级EVP API的应用不受影响。OpenSSL 3.6、3.5、3.4、3.3、3.0和1.1.1版本均受影响,而1.0.2版本和FIPS模块不受影响。由于攻击复杂度较高且需要本地访问,CVSS评分仅为4.0。
漏洞根源在于低级别OCB加密和解密例程中的指针处理错误。在硬件加速流处理路径中,加密操作以16字节块为单位处理,但未能正确推进输入/输出指针。后续的尾部处理代码因此操作原始基指针,导致重新处理缓冲区开头部分,而实际尾部字节未被处理。认证校验和同样排除了真正的尾部字节。具体来说,当调用CRYPTO_ocb128_encrypt()或CRYPTO_ocb128_decrypt()时,如果输入长度不是16的倍数(如17、33、1001字节),硬件加速路径会处理完整的16字节块但不更新指针位置,导致后续代码在错误的内存位置操作。这使得消息的最后1-15字节以明文形式暴露,且不受认证标签保护。攻击者可通过构造特定长度的输入(17-31字节)来触发漏洞,读取或修改未加密的尾部数据。