CVE-2025-15467CVE-2025-15467是OpenSSL中的一个高危安全漏洞,存在于CMS(Cryptographic Message Syntax)消息解析模块中。该漏洞允许远程攻击者通过发送精心构造的CMS AuthEnvelopedData或EnvelopedData消息,在解析过程中触发栈缓冲区溢出。由于漏洞发生在AEAD(Authenticated Encryption with Associated Data)密码如AES-GCM的IV(初始化向量)处理阶段,且在身份验证之前就已发生,因此攻击者无需任何有效的密钥材料即可利用此漏洞。成功的利用可能导致目标应用程序崩溃(造成拒绝服务)或在特定条件下实现远程代码执行。此漏洞影响使用S/MIME或PKCS#7协议处理不可信消息的应用程序和服务,如邮件加密客户端、文档签名工具等。CVSS 3.1评分8.8(高危),攻击向量为网络,无需认证但需要用户交互,对机密性、完整性和可用性均有高影响。
该漏洞的根本原因在于OpenSSL的CMS解析模块在处理AEAD密码(如AES-GCM)的初始化向量(IV)时存在边界检查缺陷。当解析CMS (Auth)EnvelopedData结构时,程序从ASN.1编码参数中提取IV数据,并将其复制到固定大小的栈缓冲区中,但未验证IV长度是否匹配目标缓冲区。具体来说,代码假设IV长度符合预期值(如GCM模式的标准IV长度),直接将数据memcpy到栈上的局部变量中。当攻击者提供一个长度超出预期的IV时,会发生栈越界写入,覆盖相邻的栈帧数据。由于此操作发生在AEAD标签验证之前,攻击者可以绕过完整性检查直接触发溢出。攻击者只需构造一个包含超大IV字段的CMS消息并诱导目标解析,即可实现栈破坏。在某些平台和编译器优化下,这种栈溢出可被利用来控制返回地址或函数指针,从而执行任意代码。