CVE-2026-31411Linux内核的网络ATM模块存在安全漏洞,源于sigd_send()函数未对用户空间传入的vcc指针进行验证。攻击者可利用ATMSIGD_CTRL接口伪造指针地址,导致内核解引用非法地址引发系统崩溃。
该漏洞发生在Linux内核ATM子系统的信令处理路径中。内核在处理来自用户空间(伪装成信令守护进程)的消息时,直接使用了msg->vcc指针而未校验其是否存在于vcc_hash哈希表中。攻击者首先通过socket创建AF_ATMSVC套接字,并利用ioctl(fd, ATMSIGD_CTRL)获取特权。随后构造包含恶意指针(如0xdeadbeef)的msghdr结构体,调用sendmsg发送。内核在sigd_send()中直接解引用该指针,导致内核恐慌。修复补丁引入了find_get_vcc()函数,通过哈希表查找和引用计数确保指针有效性。