Fragnesia漏洞信息与实测
Fragnesia漏洞信息
漏洞名称:Fragnesia
CVE/编号:LDYVUL-2026-00079302
类型:Linux系统越权
公开日期:2026年5月13日
发现者:William Bowling (V12团队)
影响组件:Linux内核ESP-in-TCP页缓存处理
利用方式:构造恶意网络包,篡改系统关键文件(如/usr/bin/su)在页缓存中的内存映像,在文件被加载到缓存后、被执行前完成替换。
危害:普通用户权限下,通过执行被篡改的su程序,触发恶意代码获得root权限shell。受影响内核:广泛影响,含6.8.0-49-generic
修复方案:升级内核或应用官方补丁,同时可考虑限制未授权用户命名空间(unprivileged userns)作为临时缓解措施
源码分析结果:PoC触发漏洞后,通过"execve(“/usr/bin/su”, NULL, NULL);“执行该程序。由于页缓存中的原始内容已被替换为自定义shellcode(shell_elf),系统执行/usr/bin/su时实际运行的是该shellcode,最终返回一个root权限的shell
源码在这里:
Fragnesia的Github
压缩包里的”/pocs-main/fragnesia/fragnesia.c"即是。
使用方法单独拿出源码后,需要编译。然后得在需要越权的设备上编译,或架构啥的完全相同的另一个设备,不然编译完跑不了。
首先,下载C语言编译器
# Ubuntu/Debiansudoaptinstallgcc# CentOS/RHEL 7及以前sudoyuminstallgcc# CentOS/RHEL 8+/Fedorasudodnfinstallgcc然后直接编译
gcc-O2-Wall-Wextra-staticfragnesia.c-ofragnesia然后添加运行权限
chmod+x fragnesia执行的时候直接
./fragnesia实测
设备:[雨云]香港 Linux Ubuntu X86服务器
设备拥有权:xuanfeng0316
用户:xuanfeng0316[普通用户]
开始
现在已经准备好了程序,前面的编译步骤不做演示
接下来我们将直接执行这个"frag_exp",使用
./frag_exp
等待执行完后,我们可以看见当前的提示符已经变成"#",现在验证一下权限。
很清楚的看到,现在的权限已经成为root。
但是经过几个简单的测试,我发现这不是完全体ROOT
可以看到命令是会被拒绝的。
其他命令我没有测试,像那种删系统什么的我不可能在我自己的服务器上试验。
总结
通过Fragnesia获得的ROOT权限,实际上的权限比真实的ROOT权限要低。
但这并不表明它获得的ROOT是软柿子,依旧有一定的威胁性。
再说明一个事情
Ubuntu用户注意,只有关闭普通用户创建命名空间的限制才能够使用Fragnesia越权。
关闭普通用户创建命名空间限制(需要ROOT):
sudosysctl-wkernel.apparmor_restrict_unprivileged_userns=0注意
强烈建议所有的Ubuntu服主都打开这个限制
开启限制的命令如下
sudosysctl-wkernel.apparmor_restrict_unprivileged_userns=1如果你测试完这个漏洞了,也一定要把这个限制重新打开,并且删除在服务器里头的Fragnesia脚本。
声明
本人是在自己的服务器上本地测试的,不涉及任何侵入他人服务器的行为。
请勿用于非法用途!
使用到的工具以及网站
Termux
GitHub
雨云
