Linux 内核 LPE 审计与 Exploit 工具包 · Page-Cache / XFRM ESP-in-TCP(espintcp)回归
交互式审计 → 检测 LPE 前置条件 → 自动执行 exploit(经确认后)
⚠️ 道德与法律警告 本工具仅用于合法且经授权的安全测试——合约渗透测试、实验/CTF,或自有资产。未经系统所有者许可使用即属犯罪行为(UU ITE、Computer Fraud and Abuse Act 等)。使用者承担全部责任。
CVE-2026-46300 是 Linux 内核中的一个 本地权限提升(LPE) 漏洞,起因是 skb_try_coalesce() 的回归,导致 page-cache 损坏,并通过 XFRM ESP-in-TCP(espintcp) 子系统加以利用。
本仓库包含 2 个组件:
| 文件 | 功能 |
|---|---|
fragnesia.sh | 审计扫描器 — 检查 3 项前置条件,若目标易受攻击则提供 exploit 执行选项 |
fragnesia.c | LPE exploit — 由脚本编译并运行的 exploit 源代码 |
┌───────────────────────┐
│ fragnesia.sh │
│ Audit 3 pemeriksaan │
└──────────┬────────────┘
▼
CHECKS_TRIGGERED > 0 ?
┌──────┴───────┐
│ Ya │ Tidak → Selesai (target aman)
▼ │
Cek fragnesia.c ada?
┌──────┴───────┐
│ Ya │ Tidak → instruksi, selesai
▼ │
Konfirmasi user [y/N]
┌──────┴───────┐
│ Ya │ Tidak → batal, selesai
▼ │
gcc -O2 -w fragnesia.c -o exp
│
▼
./exp ← eksekusi exploit
操作端(运行脚本的主机):
gcc 用于编译 exploit目标机(具备潜在漏洞条件):
skb_try_coalesce() 补丁)CONFIG_XFRM_ESPINTCP / CONFIG_INET_ESPINTCP 已启用(=y/m)kernel.unprivileged_userns_clone=1)# 1. Clone
git clone https://github.com/Kentox493/CVE-2026-46300_Fragnesia.git
cd CVE-2026-46300_Fragnesia
# 2. Pastikan script executable
chmod +x fragnesia.sh
# 3. (Opsional) Toolchain bila belum ada
sudo apt update && sudo apt install -y build-essential
# atau (RHEL/Fedora)
sudo dnf groupinstall "Development Tools"
./fragnesia.sh
fragnesia.c 和 fragnesia.sh 必须位于同一目录,因为脚本会按相对路径查找 exploit。
脚本自动执行 3 项审计检查。
若存在易受攻击的迹象(CHECKS_TRIGGERED > 0),会显示提示:
[?] Target terdeteksi vulnerable (2/3). Lanjut kompilasi & eksekusi exploit? [y/N]:
输入 y → 脚本自动编译并运行 exploit。
输入其它内容 / 按 Enter → 取消执行,审计结束。
gcc -O2 -w fragnesia.c -o exp
./exp
验证主机名 + 当前内核,然后检查发行版内核包变更日志(apt-get changelog / rpm -q --changelog)是否存在 CVE-2026-46300 补丁。
| 结果 | 含义 |
|---|---|
VULN | 发行版变更日志中无补丁 |
SAFE | 检测到 CVE-2026-46300 补丁 |
检查 /boot/config-$(uname -r) 或 /proc/config.gz 中的 ESP-in-TCP 标志。后备方案:通过 /lib/modules/ 或 lsmod 检测 XFRM/IPsec 模块。
| 结果 | 含义 |
|---|---|
VULN | CONFIG_XFRM_ESPINTCP / CONFIG_INET_ESPINTCP 已启用(=y/m) |
SAFE | 子系统已禁用 / 未构建 |
检查 kernel.unprivileged_userns_clone(备选:/proc/sys/user/max_user_namespaces)。
| 结果 | 含义 |
|---|---|
VULN | 用户命名空间已启用 → 非特权用户可获得 CAP_NET_ADMIN |
SAFE | 用户命名空间已禁用 → 缓解措施生效 |
UNCERTAIN | 无法确定 → 需人工审查 |
| 得分 | 判定 |
|---|---|
| 3/3 VULN | 🟥 CRITICAL — 完整攻击链已满足 |
该阶段仅在 CHECKS_TRIGGERED > 0 时激活。脚本执行内容:
# 1. Verifikasi keberadaan fragnesia.c
# 2. Konfirmasi user (default: TIDAK / N)
# 3. Kompilasi exploit:
gcc -O2 -w fragnesia.c -o exp
# 4. Eksekusi:
./exp
编译参数说明:
-O2 — 二级优化(对于基于竞争/计时的 exploit 保持稳定至关重要)-w — 抑制警告(exploit 源码通常充满 int-conversion 等警告)脚本内置错误处理:
| 条件 | 处理方式 |
|---|---|
fragnesia.c 不存在 | 显示说明信息,不会崩溃 |
┌──────────────────────────────────────────────────────────────────┐
│ FRAGNESIA (CVE-2026-46300) - HOST VULNERABILITY AUDIT TOOL │
│ Linux Kernel Page-Cache / XFRM espintcp Regression Inspector │
└──────────────────────────────────────────────────────────────────┘
┌──[STEP 1] Host & Kernel Verification
│ [i] INFO │ Hostname : webserver-01
│ [i] INFO │ Active Kernel : 6.8.0-45-generic
│ [!] VULNERABLE │ Patch Changelog -> No security patch found for CVE-2026-46300
└──
┌──[STEP 2] Kernel Subsystems Configuration (XFRM / ESP)
│ [!] VULNERABLE │ ESP-in-TCP Flag -> CONFIG_XFRM_ESPINTCP / CONFIG_INET_ESPINTCP active (=y/m)
└──
┌──[STEP 3] User Namespace Isolation Prerequisite
│ [!] VULNERABLE │ User Namespaces -> Enabled (Allows unprivileged user to gain CAP_NET_ADMIN)
└──
┌──────────────────────────────────────────────────────────────────┐
│ EXECUTIVE AUDIT SUMMARY │
└──────────────────────────────────────────────────────────────────┘
[!] AUDIT RESULT: CRITICAL - TARGET IS HIGHLY VULNERABLE
Semua prasyarat rantai serangan (Kernel patch, ESP subsistem, dan Userns) terpenuhi.
┌──────────────────────────────────────────────────────────────────┐
│ OPSIONAL: EKSEKUSI EXPLOIT FRAGNESIA (LPE) │
└──────────────────────────────────────────────────────────────────┘
[i] fragnesia.c ditemukan (18,432 bytes).
[?] Target terdeteksi vulnerable (3/3). Lanjut kompilasi & eksekusi exploit? [y/N]: y
┌──[STEP 4] Kompilasi & Eksekusi Exploit (fragnesia.c)
│ [i] INFO : Toolchain: gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0
│ $ gcc -O2 -w fragnesia.c -o exp
│ [✓] Kompilasi berhasil -> ./exp
│ $ ./exp
│ [*] Fragnesia exploit running...
│ [*] Overwriting page cache...
│ [*] Got root! uid=0(root) gid=0(root)
└──
skb_try_coalesce() 修复的版本。sudo sysctl -w kernel.unprivileged_userns_clone=0
/etc/sysctl.conf。echo 'install esp4_offload /bin/true' | sudo tee /etc/modprobe.d/disable-esp.conf
sudo update-initramfs -u
exp 的可疑二进制文件 / /tmp 中的可疑进程CAP_NET_ADMINCVE-2026-46300_Fragnesia/
├── fragnesia.sh # Audit scanner + trigger eksekusi exploit (bash)
├── fragnesia.c # Source exploit LPE (C)
└── README.md # Dokumentasi ini
**仅限合法用途。**本工具适用于:
在任何基础设施上运行本工具前,您必须获得系统所有者的书面许可。
本仓库按“原样”提供,不附带任何保证。贡献者不对滥用行为承担责任。
许可证: MIT
skb_try_coalesce() — 网络协议栈文档| 项目 | 详情 |
|---|
| CVE | CVE-2026-46300 |
| 类型 | 本地权限提升(LPE) |
| 组件 | Linux 内核 — page-cache + XFRM ESP-in-TCP(espintcp) |
| 根本原因 | skb_try_coalesce() 回归 → 内存/page-cache 损坏 |
| 前置条件 | 必须满足 3 项条件(见 审计检查表) |
| 影响 | 非特权用户 → root |
| 1–2/3 VULN |
🟨 MEDIUM / PARTIALLY EXPOSED — 仅部分缓解 |
| 0/3 VULN | 🟩 SECURE — 已修复 / 组件已关闭 |
未安装 gcc | 显示安装工具链的命令提示 |
| 编译失败 | 不 执行 exploit,显示编译器错误 |
./exp 退出码 ≠ 0 | 报告为失败 |