CVE-2026-28390OpenSSL在处理特制的CMS EnvelopedData消息时存在空指针引用漏洞。当使用KeyTransportRecipientInfo并采用RSA-OAEP加密时,代码在检查RSA-OAEP SourceFunc算法标识符的可选参数字段前,未验证该字段是否存在。若该字段缺失,将导致空指针解引用。攻击者可利用此漏洞,通过发送恶意CMS数据,诱使调用CMS_decrypt()的应用程序在身份验证或加密操作前崩溃,从而造成拒绝服务。值得注意的是,OpenSSL的FIPS模块不受此问题影响,因为受影响的代码位于FIPS模块边界之外。
该漏洞的技术根源在于OpenSSL解析CMS(Cryptographic Message Syntax)数据时的边界检查缺失。具体流程涉及处理EnvelopedData结构中的KeyTransportRecipientInfo部分。当接收方使用RSA-OAEP算法进行密钥传输时,OpenSSL需要解析算法标识符中的SourceFunc参数。漏洞代码在访问该可选参数的指针时,假设其必然存在,忽略了ASN.1结构中该字段可为NULL或缺失的情况。当攻击者构造一个缺失该参数字段的恶意CMS消息时,OpenSSL在执行CMS_decrypt()函数时会发生空指针解引用,引发段错误(Segmentation Fault)。由于该崩溃发生在加密操作和认证之前,攻击者无需具备任何权限或用户交互即可远程触发漏洞,导致处理邮件(S/MIME)或其他CMS协议的服务进程意外终止。