IPBUF安全漏洞报告
English
CVE-2026-4159 CVSS 3.3 低危

CVE-2026-4159 wolfSSL越界读取漏洞

披露日期: 2026-03-19

漏洞信息

漏洞编号
CVE-2026-4159
漏洞类型
越界读取
CVSS评分
3.3 低危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
wolfSSL

相关标签

wolfSSLCVE-2026-4159越界读取PKCS7堆溢出

漏洞概述

wolfSSL 5.8.4及更早版本存在安全漏洞。攻击者利用特定构造的CMS EnvelopedData消息中的零长度加密内容,可在wc_PKCS7_DecodeEnvelopedData函数中触发1字节的堆越界读取。尽管PKCS7功能默认关闭,但若启用,攻击者利用此漏洞可能导致程序可用性降低,存在潜在的安全风险。

技术细节

该漏洞源于wolfSSL在处理PKCS7/CMS EnvelopedData消息时的逻辑缺陷。具体而言,当wc_PKCS7_DecodeEnvelopedData函数解析加密内容时,如果遇到长度为零的加密数据块,代码未正确校验指针边界,导致执行了一次1字节的堆越界读取操作。由于是越界读取而非写入,主要风险在于信息泄露或程序崩溃。攻击向量为本地,需要低权限,且无需用户交互。鉴于PKCS7在wolfSSL中默认为禁用状态,该漏洞仅影响显式启用该功能的构建版本。

攻击链分析

STEP 1
侦察
攻击者确认目标系统使用了wolfSSL库,且版本在5.8.4及以下,并启用了PKCS7支持。
STEP 2
构造载荷
攻击者构造一个特制的CMS EnvelopedData消息,其中包含零长度的加密内容字段。
STEP 3
触发漏洞
攻击者在本地环境下,将恶意消息传递给wc_PKCS7_DecodeEnvelopedData函数进行解析。
STEP 4
越界读取
由于代码逻辑缺陷,解析过程中发生1字节的堆越界读取,可能导致信息泄露或程序异常。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC Concept for CVE-2026-4159 * This code demonstrates how to trigger the OOB read by passing * a crafted CMS EnvelopedData blob with zero-length encrypted content. */ #include <wolfssl/options.h> #include <wolfssl/wolfcrypt/pkcs7.h> #include <stdio.h> int main() { int ret; byte* der = NULL; word32 derSz = 0; byte* out = NULL; word32 outSz = 0; byte key[16] = {0}; // Dummy key byte iv[16] = {0}; // Dummy IV // Placeholder for the crafted ASN.1 DER data representing // a CMS EnvelopedData structure with zero-length encrypted content. // In a real exploit, this byte array would contain the specific // malicious sequence. byte malicious_payload[] = { /* Insert crafted DER bytes here */ }; word32 payload_len = sizeof(malicious_payload); // Initialize wolfSSL (not shown for brevity) // wolfSSL_Init(); printf("Attempting to parse malicious PKCS7 data...\n"); // This call triggers wc_PKCS7_DecodeEnvelopedData // If vulnerable, it will read 1 byte out of bounds on the heap. ret = wc_PKCS7_DecodeEnvelopedData( malicious_payload, payload_len, key, iv, // Decryption context out, &outSz // Output buffer ); if (ret != 0) { printf("Error processing data (expected or crash occurred). Code: %d\n", ret); } else { printf("Data processed.\n"); } return 0; }

影响范围

wolfSSL <= 5.8.4

防御指南

临时缓解措施
建议立即升级wolfSSL库至修复版本。如暂时无法升级,应检查代码库中是否启用了PKCS7支持,并确保默认配置保持关闭,以减少受攻击面。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表