Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-99999 — Spanish guide and Bash script to check whether a Linux host is exposed to CVE-2026-99999 (PwnEscape) VM-to-host kernel escape, with patch verification and mitigation steps. | Kitploit
Herramientas/GitHubGitHub/alvaroguzmancode/cve-2026-99999
Defensive ToolsContainer SecurityVulnerability AnalysisConfiguration AuditingSecurity VirtualizationLearning & EducationIncident Response
GitHubalvaroguzmancode/cve-2026-99999

CVE-2026-99999

Spanish guide and Bash script to check whether a Linux host is exposed to CVE-2026-99999 (PwnEscape) VM-to-host kernel escape, with patch verification and mitigation steps.

Ver Repositorio
3hace 18 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-99999 — PwnEscape: detección y mitigación

CVSS Kernel Tipo Explotación

Guía práctica en español para saber si un servidor Linux está expuesto a CVE-2026-99999 ("PwnEscape") y cómo mitigarla. Incluye un script que revisa el equipo y da un veredicto con la razón.


📋 Resumen

CampoValor
CVECVE-2026-99999
NombrePwnEscape
ComponenteKernel Linux, procesamiento de checksums IPv4 (skb_checksum_help())
SeveridadCVSS 3.1 9.3 (Crítica) — AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
ImpactoUna VM maliciosa puede leer memoria del host, tumbarlo y, en laboratorio, tomar control con root
VectorLocal: el atacante necesita ejecutar código dentro de una VM
Descubierto porPaulos Yibelo (pwn.ai), durante el Sandbox Challenge de Vercel
Publicado15 de octubre de 2026
Fix upstreamCommit 6785011f8b16 (Michael S. Tsirkin, Red Hat)
Explotación activaNo reportada · No está en el catálogo KEV de CISA

🧠 ¿Qué es? (explicado simple)

Piensa en un edificio de departamentos:

  • El edificio es el servidor físico, el host.
  • Cada departamento es una máquina virtual (VM).
  • PwnEscape es una falla en las paredes del edificio: desde un departamento, un inquilino malicioso puede espiar o meterse a la administración del edificio.
┌──────────────────────────────────────┐
│  HOST (servidor físico + hipervisor) │  ← aquí está la falla
│  Linux con KVM / QEMU / Firecracker  │
│                                      │
│   ┌─────────┐ ┌─────────┐ ┌────────┐ │
│   │  VM  A  │ │  VM  B  │ │  VM  C │ │
│   │         │ │(atacante)│ │        │ │
│   └─────────┘ └─────────┘ └────────┘ │
└──────────────────────────────────────┘

La falla está en el host, no en las VMs. Por eso:

  • ✅ Si tu servidor es un VPS o una VM (DigitalOcean, AWS, Hetzner, Proxmox, etc.), no eres el blanco. El que debe parchar es tu proveedor o quien administre el host.
  • ⚠️ Si tu servidor hospeda VMs (Proxmox, KVM/libvirt, OpenStack, Firecracker), sí eres el blanco, sobre todo si corres VMs de terceros o código no confiable.

🔬 ¿Cómo funciona? (nivel técnico)

Linux permite que los paquetes de red lleven metadatos que indican dónde empieza un checksum y dónde se escribe su resultado. Es una optimización legítima para el checksum offloading.

El problema es el orden de las operaciones:

  1. El kernel recibe un paquete de la VM con un header IPv4 normal (IHL = 20 bytes) y lo valida.
  2. Después, una operación de checksum diferida, controlada por los metadatos que mandó la VM, reescribe ese mismo header ya validado y lo cambia a IHL = 60 bytes.
  3. La lógica de fragmentación confía en el valor nuevo y copia más datos de los que el paquete realmente tiene.
  4. Esos bytes extra son memoria del host (32 bytes por paquete en la prueba), y el ataque se puede repetir.

El fix valida que el inicio del checksum no pueda apuntar dentro de un header IPv4 ya procesado. Se aplica en cinco rutas de red afectadas.

El código vulnerable existe desde el kernel 2.6.27 (2008).


📦 Versiones corregidas

RamaPrimera versión corregida
5.105.10.272
5.155.15.223
6.16.1.190
6.66.6.159
6.126.12.113
6.186.18.57
7.27.2.11
Mainline7.3-rc7

⚠️ Ubuntu, RHEL/Rocky/Alma, SUSE y Proxmox usan numeración propia (por ejemplo 5.15.0-125-generic o 5.14.0-503.el9). En esas distros la versión no dice nada por sí sola: hay que revisar el aviso de seguridad de la distro o el changelog del kernel.

Ramas fuera de esta lista (6.8, 6.19, 7.0, 7.1…) ya no tienen soporte upstream y no recibieron el fix.


🔍 ¿Estoy afectado?

Opción A — Script automático (recomendado)

curl -O https://raw.githubusercontent.com/alvaroguzmancode/CVE-2026-99999/refs/heads/main/check-pwnescape.sh
sudo bash check-pwnescape.sh

El script revisa tres cosas:

  1. Rol del equipo: si es una VM, si hospeda VMs o si puede hospedarlas pero hoy no lo hace.
  2. Parche: busca el CVE en el changelog del kernel y compara contra las versiones corregidas.
  3. Reinicio pendiente: si hay un kernel nuevo instalado que todavía no está activo.

Ejemplo de salida en un 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.
Código de salidaSignificado
0No vulnerable o no expuesto
1Vulnerable
2No se pudo confirmar, hay que revisar a mano

Opción B — Revisión manual

1. ¿Soy VM o soy host?

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. ¿Mi kernel tiene el parche?

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. ¿Falta reiniciar?

[ -f /var/run/reboot-required ] && echo "Falta reiniciar"   # Debian / Ubuntu
needs-restarting -r                                          # RHEL

🛡️ Mitigación

1. Actualizar el kernel del host (solución real)

# Debian / Ubuntu / Proxmox
sudo apt update && sudo apt full-upgrade

# RHEL / Rocky / Alma / Fedora
sudo dnf update kernel

Los mantenedores del kernel recomiendan instalar la versión estable completa de tu distro, no aplicar el commit suelto.

2. Reiniciar y verificar

sudo reboot
# después:
uname -r
sudo bash check-pwnescape.sh

Instalar el paquete no basta: el kernel nuevo solo entra en uso después de reiniciar. En clústers, verifica cada hipervisor.

3. Parchar solo las VMs no sirve

Actualizar el kernel dentro de las VMs no elimina el riesgo, porque la falla está en el host. Si eres el cliente de un VPS, confirma con tu proveedor que ya parchó sus hosts.

4. Descargar KVM si no lo usas

Si el equipo tiene KVM cargado pero no hospeda VMs, puedes reducir superficie:

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

5. Defensa en profundidad (mientras parchas)

Estas medidas no corrigen la falla, pero limitan lo que lograría un atacante que escape de una VM:

Descargar herramienta