一份实用指南(西班牙语),用于判断 Linux 服务器是否暴露于 CVE-2026-99999("PwnEscape") 之下,以及如何缓解该漏洞。其中包含一个脚本,可检查设备并给出带有原因的判定结论。
| 字段 | 值 |
|---|---|
| CVE | CVE-2026-99999 |
| 名称 | PwnEscape |
| 组件 | Linux 内核,IPv4 校验和处理(skb_checksum_help()) |
| 严重性 | CVSS 3.1 9.3(严重) — AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| 影响 | 恶意 VM 可读取主机内存、使其崩溃,并在实验环境中以 root 权限取得控制 |
| 向量 | 本地:攻击者需要在虚拟机内部执行代码 |
| 发现者 | Paulos Yibelo(pwn.ai),在 Vercel 的 Sandbox Challenge 期间发现 |
| 发布日期 | 2026 年 10 月 15 日 |
| 上游修复 | 提交 6785011f8b16(Michael S. Tsirkin,Red Hat) |
| 在野利用 | 未报告 · 未列入 CISA 的 KEV 目录 |
想象一栋公寓楼:
┌──────────────────────────────────────┐
│ HOST (servidor físico + hipervisor) │ ← aquí está la falla
│ Linux con KVM / QEMU / Firecracker │
│ │
│ ┌─────────┐ ┌─────────┐ ┌────────┐ │
│ │ VM A │ │ VM B │ │ VM C │ │
│ │ │ │(atacante)│ │ │ │
│ └─────────┘ └─────────┘ └────────┘ │
└──────────────────────────────────────┘
漏洞位于宿主机,而非虚拟机。因此:
Linux 允许网络数据包携带元数据,用于指示校验和的起始位置以及结果写入的位置。这是针对 checksum offloading 的合法优化。
问题在于操作的顺序:
该修复确保校验和的起始位置不能指向已处理的 IPv4 头部内部。它应用于五个受影响的网络路径。
该漏洞代码自内核 2.6.27(2008 年)起就已存在。
| 分支 | 首个修复版本 |
|---|---|
| 5.10 | 5.10.272 |
| 5.15 | 5.15.223 |
| 6.1 | 6.1.190 |
| 6.6 | 6.6.159 |
| 6.12 | 6.12.113 |
| 6.18 | 6.18.57 |
| 7.2 | 7.2.11 |
| Mainline | 7.3-rc7 |
⚠️ Ubuntu、RHEL/Rocky/Alma、SUSE 和 Proxmox 使用自己的版本编号(例如
5.15.0-125-generic或5.14.0-503.el9)。在这些发行版中,版本号本身说明不了任何问题:必须查看该发行版的安全公告或内核 changelog。此列表之外的分支(6.8、6.19、7.0、7.1……)已不再有上游支持,未收到该修复。
curl -O https://raw.githubusercontent.com/alvaroguzmancode/CVE-2026-99999/refs/heads/main/check-pwnescape.sh
sudo bash check-pwnescape.sh
该脚本检查三项内容:
VPS 上的输出示例:
== VEREDICTO ==
Rol: Este equipo ES una máquina virtual; no hospeda otras VMs.
Kernel: VULNERABLE — la versión del kernel es anterior a la corregida.
NO EXPUESTO DIRECTAMENTE.
La falla solo se explota desde una VM hacia el servidor que la hospeda.
Este equipo no hospeda VMs, así que no hay a quién atacar desde aquí.
Ojo: el que SÍ debe estar parchado es el host que aloja esta VM
(tu proveedor de nube o tu servidor Proxmox/KVM). Confírmalo con ellos.
| 退出码 | 含义 |
|---|---|
0 | 无漏洞或未暴露 |
1 | 存在漏洞 |
2 | 无法确认,需人工复核 |
1. 我是虚拟机还是宿主机?
systemd-detect-virt # "kvm", "xen", etc. = eres una VM; "none" = físico
pgrep -a qemu-ga # si aparece, eres una VM (QEMU Guest Agent)
lsmod | grep -E 'kvm|vhost' # módulos de virtualización cargados
cat /sys/module/kvm_intel/refcnt 2>/dev/null || cat /sys/module/kvm_amd/refcnt # >0 = hay VMs usando KVM
virsh list --all 2>/dev/null # VMs de libvirt
pgrep -a '^(qemu-system|firecracker)' # VMs / microVMs corriendo
2. 我的内核是否已打补丁?
uname -r
# Debian / Ubuntu
zgrep -i "CVE-2026-99999" /usr/share/doc/linux-image-$(uname -r)/changelog.Debian.gz
# RHEL / Rocky / Alma / Fedora
rpm -q --changelog kernel-core-$(uname -r) | grep -i "CVE-2026-99999"
3. 是否需要重启?
[ -f /var/run/reboot-required ] && echo "Falta reiniciar" # Debian / Ubuntu
needs-restarting -r # RHEL
# Debian / Ubuntu / Proxmox
sudo apt update && sudo apt full-upgrade
# RHEL / Rocky / Alma / Fedora
sudo dnf update kernel
内核维护者建议安装你所用发行版的完整稳定版本,而不是单独应用该提交。
sudo reboot
# después:
uname -r
sudo bash check-pwnescape.sh
安装软件包还不够:新内核只有在重启后才会生效。在集群中,请检查每一台虚拟机监控程序。
在虚拟机内部更新内核并不能消除风险,因为漏洞出在宿主机上。如果你是 VPS 的客户,请向你的服务商确认他们已为宿主机打好补丁。
如果设备加载了 KVM 但并不托管虚拟机,你可以缩小攻击面:
sudo modprobe -r kvm_intel kvm_amd kvm 2>/dev/null
echo -e "blacklist kvm_intel\nblacklist kvm_amd\nblacklist kvm" | sudo tee /etc/modprobe.d/no-kvm.conf
这些措施不能修复该漏洞,但可以限制攻击者从虚拟机逃逸后所能达成的目标:
目前没有公开的 IOC(哈希、域名、IP),因为尚未发现任何活跃的攻击活动。检测基于主机上的行为:
# Caídas u "oops" del kernel en los últimos 30 días
journalctl -k --since "-30d" | grep -iE "panic|oops|BUG:|general protection|skb"
警示信号:
如果你怀疑发生了逃逸,请将整个主机视为已失陷,而不仅仅是虚拟机。保留内存和日志,检查同一主机上的其他虚拟机,并轮换凭据。
我们针对 CVE-2026-99999(“PwnEscape”)漏洞检查了您的服务器。该缺陷影响承载虚拟机的物理服务器:它允许恶意虚拟机攻击承载它的服务器。
您的服务器是由服务商托管的虚拟机,且不承载其他虚拟机,因此不直接受该漏洞影响。修复工作由基础设施服务商负责,他们需要更新其物理服务器。
作为预防措施,我们将与服务商确认其已应用补丁,并在下一个维护窗口更新服务器内核。截至目前,尚无报告显示该缺陷正被积极利用。
| 文件 | 描述 |
|---|---|
README.md | 本指南 |
check-pwnescape.sh | 检测脚本(Bash,无依赖) |
作者: Álvaro Guzmán · 信息截至 2026 年 10 月 19 日有效。