CVE-2026-23457CVE-2026-23457是Linux内核netfilter组件中nf_conntrack_sip模块的一个高危漏洞。该漏洞主要影响SIP协议的TCP连接跟踪功能。由于sip_help_tcp()函数在处理SIP消息头部的Content-Length字段时存在类型转换错误,导致在64位系统上发生整数截断。攻击者可利用此漏洞构造特制的SIP数据包,误导内核解析器错误计算消息边界。这可能导致内核将非预期的数据作为后续SIP消息处理,进而可能触发拒绝服务或信息泄露风险,对系统的机密性、完整性和可用性造成负面影响。
该漏洞位于Linux内核的netfilter子系统中,具体出现在net/netfilter/nf_conntrack_sip.c文件的sip_help_tcp()函数内。代码逻辑使用simple_strtoul()函数解析SIP协议头中的Content-Length字段,该函数返回一个unsigned long类型(64位系统上为64位整数)。然而,解析结果被赋值给了一个unsigned int类型的变量clen(32位整数)。在64位系统上,如果Content-Length的值超过UINT_MAX(即2^32-1),例如4294967328(2^32+32),高位数据会被静默截断,仅保留低32位(即32)。这导致连接跟踪模块错误地认为SIP消息体很短,从而错误地计算了当前消息的结束位置。随后,TCP段中剩余的数据会被误认为是新的SIP消息,并被送入SDP解析器进行处理。这种逻辑错误可能绕过协议预期的安全检查,导致内核处理异常数据结构,引发潜在的内存破坏或逻辑漏洞。