CVE-2026-5187wolfSSL的ASN.1解码函数DecodeObjectId存在严重堆越界写入漏洞。由于边界检查逻辑缺陷及调用方参数传递错误(使用字节数而非元素计数),攻击者可构造恶意OID数据,导致写入超出分配缓冲区,从而引发内存破坏。
漏洞位于wolfSSL的wolfcrypt/src/asn.c文件中的DecodeObjectId函数。第一个缺陷在于边界检查不足,代码仅验证了1个可用槽位即允许写入两个OID arc值,当输出缓冲区大小outSz为1时,将导致2字节的堆越界写入。第二个缺陷是调用者传递了sizeof(decOid)(64字节)作为缓冲区大小,而函数将其误认为是元素数量。由于实际元素上限MAX_OID_SZ为32,攻击者可发送包含33个或更多arc的特制OID数据包,导致函数在写入时超出堆缓冲区末尾,造成严重的内存破坏,可能导致远程代码执行。