CVE-2026-43011Linux内核net/x25模块中存在一个严重的双重释放漏洞。该漏洞产生的原因是在处理接收帧时,如果alloc_skb分配失败,错误处理逻辑不当会导致同一个skb结构体被释放两次。这种内存管理错误可能被本地或远程攻击者利用,从而引发内核崩溃(拒绝服务)或潜在的权限提升风险,对系统安全构成严重威胁。
该漏洞的具体技术细节在于Linux内核net/x25子系统的调用链处理不当。当x25_queue_rx_frame函数尝试分配skb失败时,它会立即调用kfree_skb释放该skb并返回错误码1。然而,调用链中的x25_state3_machine函数在接收到错误码后,错误地将queued变量设置为0并返回。最终,x25_backlog_rcv函数检测到queued为0,再次调用kfree_skb(skb)尝试释放内存。由于该skb此前已被释放,这导致了典型的Double Free漏洞,破坏了内核内存管理器的元数据。攻击者可以通过发送特制的网络数据包来触发这一特定的错误路径,利用内存压力增加alloc_skb失败的概率,进而稳定触发该漏洞。