CVE-2026-5295wolfSSL的PKCS7实现中存在栈缓冲区溢出漏洞。该漏洞位于wc_PKCS7_DecryptOri函数,当处理包含OtherRecipientInfo (ORI)的CMS EnvelopedData消息时,由于未校验ASN.1解析的OID长度,直接将其复制到32字节固定栈缓冲区,导致溢出。
该漏洞源于wolfSSL库中wolfcrypt/src/pkcs7.c文件的wc_PKCS7_DecryptOri函数。在处理CMS EnvelopedData消息时,若消息包含OtherRecipientInfo (ORI)收件人,程序会将ASN.1解析出的OID通过XMEMCPY复制到固定大小的栈缓冲区oriOID[MAX_OID_SZ](大小为32字节)中。由于代码未在复制前校验OID长度是否超过MAX_OID_SZ,攻击者可发送包含超长OID的特制CMS消息触发栈溢出。成功利用需满足两个前提:1. wolfSSL编译时启用了--enable-pkcs7(默认禁用);2. 应用调用了wc_PKCS7_SetOriDecryptCb()注册回调。攻击者需位于邻接网络并诱导用户处理恶意消息。