CVE-2026-2646wolfSSL的wolfSSL_d2i_SSL_SESSION函数中存在堆缓冲区溢出漏洞。当启用SESSION_CERTS反序列化会话数据时,由于未对证书和会话ID长度进行边界验证,攻击者可利用不受信任的输入导致固定大小缓冲区溢出,破坏堆内存。该漏洞需从外部加载恶意会话触发,内部会话不受影响。
该漏洞的根源在于wolfSSL在处理SSL/TLS会话恢复机制时,特别是调用wolfSSL_d2i_SSL_SESSION()函数解析外部序列化的会话数据。当编译时启用了SESSION_CERTS选项时,代码直接从输入流中读取证书长度和会话ID长度字段,并将其用于内存复制操作,且未验证这些长度值是否超过了目标缓冲区的固定大小。攻击者可以构造恶意的会话数据,包含超长的长度字段,导致在复制过程中发生堆缓冲区溢出。这种溢出可以覆盖堆上的相邻内存块,可能破坏关键数据结构或控制流。由于攻击通过网络向量(AV:N)且无需用户交互(UI:N),远程攻击者若能诱使目标加载恶意会话数据,即可实现高权限的代码执行或拒绝服务攻击。