新型Linux pedit COW漏洞:通过污染缓存二进制文件获取Root权限 📅 2026/7/1 7:28:19 Linux内核流量控制子系统存在漏洞允许本地非特权用户在受影响系统上获取root权限。该漏洞编号为CVE-2026-46331被命名为pedit COW是数据包编辑功能(act_pedit)中的越界写入漏洞会破坏共享的页面缓存内存。在6月16日分配CVE编号后一天内就出现了公开可用的漏洞利用代码。红帽将该漏洞评级为重要。该漏洞利用程序不会触及磁盘上的文件而是污染内存中setuid root二进制文件(/bin/su)的缓存副本注入小型有效载荷并以root身份运行被篡改的镜像。当root shell已经打开时文件完整性检查仍显示正常。漏洞利用需要两个条件act_pedit模块可加载且非特权用户命名空间处于开放状态这为攻击者提供了触发漏洞所需的命名空间本地网络能力(CAP_NET_ADMIN)。在测试的RHEL和Debian目标系统上这两个条件均已满足。漏洞原理Linux的tc流量控制工具可以使用名为pedit的操作重写传输中的数据包头部。实现此功能的内核函数tcf_pedit_act()本应在编辑数据前创建私有副本这是标准的写时复制模式。但该函数在最终偏移量未知前仅检查了一次可写范围。某些编辑键仅在运行时解析其偏移量。当这种情况发生时写入操作会落在私有复制区域之外导致内核修改共享的页面缓存页而非私有副本。如果该页面属于缓存文件则文件的内存映像将被破坏。这种模式并不陌生。Dirty Pipe、Copy Fail、DirtyClone和Dirty Frag都采用了相同的方式内核快速路径写入其不独占的页面而页面缓存成为受害者。此漏洞的新颖之处在于入口点。非特权用户可以从用户命名空间内部配置tc操作这为他们提供了漏洞利用所需的CAP_NET_ADMIN权限。受影响系统PoC作者报告称在默认开放非特权用户命名空间的RHEL 10和Debian 13(trixie)系统上可实现非特权到root的提权。Ubuntu 24.04需要通过仍允许用户命名空间的AppArmor配置文件路由执行。Ubuntu 26.04默认阻止此路径因为其AppArmor配置文件限制了非特权用户命名空间但底层内核仍然存在漏洞。各厂商修复情况如下Debian已通过安全渠道修复trixie版本。Debian 11和12仍被列为易受攻击。截至6月25日Ubuntu列出从18.04到26.04的支持版本均存在漏洞。红帽列出RHEL 8、9和10受影响RHEL 7未在公告中列出。应对措施安装补丁内核并重启。优先处理本地用户不意味着可信用户的系统多租户主机、CI/CD运行器、Kubernetes节点、构建工作机以及共享研究或实验机器。若无法立即打补丁有两种缓解措施可阻断漏洞利用链。对于不需要tc pedit规则的系统检查模块是否正在使用(lsmod | grep act_pedit)然后阻止其加载或者禁用非特权用户命名空间(RHEL上设置user.max_user_namespaces0Debian/Ubuntu上设置kernel.unprivileged_userns_clone0)。这会移除漏洞利用所需的命名空间本地能力但会破坏无根容器、某些CI沙箱和沙盒浏览器。请先测试。由于覆盖目标是缓存内存文件完整性检查可能无法捕获。清空页面缓存(echo 3 /proc/sys/vm/drop_caches)可清除内存中的污染副本但对攻击者已打开的root shell无效。应将主机视为已遭入侵。该修复补丁于5月下旬登陆netdev邮件列表被标记为常规数据损坏修复。可利用的细节在公开邮件列表上存在数周之久既无CVE编号也无安全警告。CVE编号于6月16日补丁合并时分配武器化的概念验证代码在一天内出现。对于内核页面缓存损坏漏洞等待扫描规则更新为时已晚。