
Испаноязычное руководство и Bash-скрипт для проверки того, подвержен ли Linux-хост воздействию CVE-2026-99999 (PwnEscape) — побега из виртуальной машины в хост через ядро, — с проверкой патча и шагами по устранению.
Практическое руководство на испанском языке, позволяющее определить, подвержен ли сервер 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 |
| Воздействие | Вредоносная ВМ может читать память хоста, обрушить его и, в лабораторных условиях, получить контроль с правами root |
| Вектор | Локальный: атакующему необходимо выполнить код внутри ВМ |
| Обнаружено | Paulos Yibelo (pwn.ai), в ходе Sandbox Challenge от Vercel |
| Опубликовано | 15 октября 2026 г. |
| Исправление upstream | Коммит 6785011f8b16 (Michael S. Tsirkin, Red Hat) |
| Активная эксплуатация | Не зафиксирована · Отсутствует в каталоге KEV CISA |
Представьте многоквартирный дом:
┌──────────────────────────────────────┐
│ 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…) больше не поддерживаются upstream и не получили исправление.
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. Я VM или хост?
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
Эти меры не устраняют уязвимость, но ограничивают то, чего смог бы добиться атакующий, вырвавшийся из VM: