
该项目记录了对 Fragnesia(CVE-2026-46300)TryHackME 实验室的完成与分析, 该实验展示了一种 Linux 内核页面缓存损坏漏洞,能够通过修改缓存的文件页面(不改变磁盘上的文件)实现本地权限提升。
skb_try_coalesce()SKBFL_SHARED_FRAG| 组件 | 详情 |
|---|---|
| 平台 | TryHackMe |
| 漏洞 | CVE-2026-46300 |
| 操作系统 | Ubuntu 22.04.5 LTS |
| 内核 | Linux 6.8.0-1017-aws |
| 用户 | Karen |
| 权限级别 | 非特权用户 |
Fragnesia 是一个 Linux 内核漏洞,能够通过 ESP-in-TCP 接收路径对页面缓存支持的文件页面进行确定性修改。
该漏洞源于数据包合并期间对共享套接字缓冲区片段的错误处理,允许对缓存文件内容进行受控的字节修改。
| 属性 | 值 |
|---|
该漏洞利用程序从非特权用户账户编译并执行。
cd /home/karen/fragnesia
gcc -02 -w fragnesia.c -o exp ./exp
该利用程序修改了以下文件的缓存副本:
/usr/bin/su
而不改变磁盘上存储的文件。
该利用程序创建了一个用户命名空间,并在该命名空间内获得了 UID 0。
whoami
root
然而,尝试访问受保护资源失败:
cat /root/flag.txt
permission denied
这表明命名空间 root 并不等同于主机 root。
退出命名空间 shell 后:
exit
/usr/bin/su
被损坏的 /usr/bin/su 页面缓存副本执行了攻击者控制的代码。
whoami
root
id
uid=0(root) gid=0(root)
该进程现在拥有真正的主机级 root 权限。
THM{fragnesia_skb_coalesce_amnesia}
为了确认该利用程序仅影响内存:
sha256sum /usr/bin/su
哈希值与原始二进制文件匹配,证实:
使用以下命令清除被损坏的页面缓存条目:
sudo sh -c 'echo 3 > /proc/sys/vm/ drop_caches'
缓存驱逐后,/usr/bin/su 恢复正常行为,并需要身份验证。
TryHackMe – Fragnesia (CVE-2026-46300) Linux 内核文档 CVE-2026-46300 研究资料
Ejepu Benedict Amaechi 项目完成并作为 TryHackMe 动手网络安全培训的一部分进行记录。
| CVE | CVE-2026-46300 |
| 子系统 | xfrm ESP-in-TCP |
| 原语 | 1 字节写入 |
| 是否需要竞态条件 | 否 |
| 容器逃逸潜力 | 是 |
| 目标 | Linux 页面缓存 |