CVE-2026-23455Linux内核netfilter模块中的nf_conntrack_h323组件存在一个安全漏洞。在DecodeQ931()函数处理Q.931协议数据包时,程序从UserUserIE字段读取一个16位长度值。代码在减去1以跳过协议鉴别字节时,未检查该长度是否为0。如果长度为0,减法操作将导致无符号整数下溢,产生一个极大的值(65535)。该值随后被传递给解码函数,导致内核试图读取超出数据包边界的内存,引发越界读取。
该漏洞源于Linux内核对H.323协议(常用于VoIP)连接跟踪的实现缺陷。具体而言,漏洞发生在net/netfilter/nf_conntrack_h323.c文件的DecodeQ931()函数中。当解析包含UserUserIE的数据包时,代码提取了2字节的长度字段len。为了跳过协议鉴别符,代码执行len--操作。由于len是u16类型(无符号16位整数),当原始值为0时,减1后变为65535(0xFFFF)。随后,此值被传递给DecodeH323_UserInformation()函数,该函数将其作为读取长度执行内存读取操作。由于实际数据包长度远小于65535,这将导致读取越界。攻击者无需认证即可通过网络发送特制数据包触发此漏洞,可能导致内核崩溃(拒绝服务)或泄露敏感内存信息。