Los 948 exploits para obtener root en Linux descubiertos por OpenAI cambian una premisa fundamental para los equipos de API: un punto de apoyo con privilegios limitados en un servidor sin parchear podría no mantener esos privilegios bajos por mucho tiempo. Compruebe qué kernel está ejecutando, instale las actualizaciones de seguridad de su distribución, reinicie con el nuevo kernel y restrinja el alcance de cualquier proceso comprometido. Al tratarse de fallos locales, un atacante necesita primero un punto de apoyo; no son exploits remotos por sí mismos.
uname -r # the kernel you're running now
cat /etc/os-release # your distro and version
uptime # how long since the last reboot
TL;DR
- El pipeline de OpenAI generó 948 exploits únicos de escalada local de privilegios (LPE) en Linux a un coste de 1279 $ cada uno en créditos de API.
- OpenAI señala que una cuenta con bajos privilegios en un sistema operativo que no cuenta con los últimos parches «debería considerarse funcionalmente equivalente al acceso root para un actor de amenazas con recursos suficientes».
- Muchos de estos fallos aún se están notificando y corrigiendo. OpenAI no publica ninguna lista de versiones afectadas, por lo que ninguna versión del kernel puede considerarse segura.
- La publicación de OpenAI no informa de ningún ataque que haya utilizado estos 948 fallos.
- Su tarea para esta semana: parchear y reiniciar, aislar las cargas de trabajo de riesgo y reducir al mínimo lo que cada cuenta de servicio puede manipular.
Lo que descubrió OpenAI: las cifras
El informe de OpenAI, «A thousand fewer paths to root», publicado el 4 de noviembre de 2026, describe una ejecución realizada a mediados de octubre contra la última versión del kernel de Linux utilizando un próximo modelo de ciberseguridad. Los exploits se probaron en un sistema operativo de escritorio estándar de una distribución de uso común, con las protecciones habituales activadas (SMEP, SMAP, KASLR, HARDENED_USERCOPY), dentro de máquinas virtuales aisladas.
| Métrica | Resultado |
|---|---|
| Objetivos de auditoría | 5034 (alrededor de 2,8M de líneas, aproximadamente el 7 % del kernel) |
| Hallazgos candidatos | 2308 |
| Reproducidos dinámicamente | 1724 (alrededor del 74,7 %) |
| Pruebas de concepto de filtración de información | 291 |
| Exploits de LPE funcionales | 1169 |
| LPE únicos tras análisis de variantes | 948 |
| Coste total de API | 1 213 430 $ (1279 $ por exploit de LPE) |
| Ejecución de julio con GPT-5.6 Sol | 166 LPE únicos por 513 690 $ |
| Estado tras el análisis de 10 días | 61 LPE parcheados en upstream, 43 con parches en staging, 299 en debate público |

OpenAI califica sus costes como «más bien un límite superior», ya que no estaban optimizando el precio. La ejecución de octubre también detectó más de 5 veces más LPE nuevos que la de julio, a pesar de los tres meses de endurecimiento entre ambos análisis.
OpenAI afirma haber enviado cientos de informes y parches para fallos críticos y está enviando el resto de forma gradual a través de los socios de Patch the Planet. Los detalles de los exploits se mantienen bajo reserva, incluidas al menos 10 técnicas novedosas. Por lo tanto, no existe una lista con la que contrastar su kernel, y que una corrección llegue a la rama principal (upstream) no significa que su distribución ya la haya publicado.

Qué significa «local» para un servidor de API
Una vulnerabilidad de escalada local de privilegios permite a un usuario que ya ejecuta código en una máquina convertirse en root. Nadie puede explotarla enviando únicamente una petición a su API. Un atacante necesita primero un punto de apoyo, como la ejecución de código dentro de su servicio o una shell obtenida mediante una credencial robada. El fallo del kernel es solo el segundo paso.
Los servidores de API ofrecen multitud de primeros pasos:
- Un fallo en su stack. PHP2Shell, React2Shell y el RCE de Brotli en Node.js demuestran cómo la ejecución de código puede originarse en la capa de aplicación.
- Un token robado. Una clave SSH o un token de CI filtrados pueden entregarle una shell al atacante. El caso de las claves de API de IA robadas muestra la rapidez con la que se aprovechan las credenciales filtradas.
- Una cuenta de servicio comprometida. Un bot de despliegue o una cuenta compartida de worker suelen tener mucho más alcance del que nadie recuerda.
Es posible que hasta ahora considerara ese punto de apoyo como algo contenido porque el proceso se ejecuta como un usuario sin privilegios. La perspectiva de OpenAI desmantela esa tranquilidad para los sistemas sin parchear frente a un atacante con recursos suficientes. Planifique asumiendo que el primer fallo en su API puede permitir alcanzar privilegios de root en ese host.
Tenga en cuenta las limitaciones. El entorno de prueba fue un sistema operativo de escritorio, y OpenAI no especifica cuántos de los 948 fallos afectan a una compilación concreta de servidor. Su nivel de exposición depende de su kernel, del estado de sus parches y de si alguien puede conseguir ese primer punto de apoyo.
Compruebe su kernel y el estado de sus parches en 2 minutos
uname -r le indica qué versión se está ejecutando, no cuál está instalada. Un servidor puede tener un nuevo kernel en disco y seguir ejecutando el antiguo hasta que se reinicie. Esa discrepancia es lo primero que debe comprobar.
| Distribución | Listar actualizaciones pendientes | Aplicar actualizaciones | ¿Requiere reinicio? | Live patches cargados |
|---|---|---|---|---|
| Ubuntu | apt list --upgradeable |
sudo apt update && sudo apt upgrade |
ls /var/run/reboot-required |
canonical-livepatch status --verbose |
| Debian | apt list --upgradeable |
sudo apt update && sudo apt upgrade |
sudo needrestart -k |
No cubierto aquí |
| RHEL 9 | dnf updateinfo list updates security |
sudo dnf upgrade --security |
dnf needs-restarting -r |
sudo kpatch list |
| Amazon Linux 2023 | sudo dnf updateinfo list |
sudo dnf upgrade --security |
Comparar uname -r con sudo dnf list kernel |
sudo kpatch list |
En RHEL, needs-restarting -r finaliza con código 1 cuando es necesario reiniciar y con 0 cuando no, lo que facilita automatizarlo en toda una flota. En Debian, needrestart -k comprueba si el kernel en ejecución ha quedado obsoleto.
El live patching ayuda, pero con limitaciones:
- No lo cubre todo. AWS ofrece live patching según su mejor criterio (best-effort) y advierte de que algunas correcciones solo se distribuyen en el paquete completo del kernel.
uname -rno cambiará. La versión solo se actualiza tras reiniciar, así que verifique directamente el estado del live patch.- El indicador de reinicio de Ubuntu puede desaparecer. Livepatch puede suprimir el aviso de reinicio si cubre los CVE corregidos por el kernel del próximo arranque.
canonical-livepatch status --verbosemuestra los CVE aplicados.
Considere los parches en vivo como un puente hasta el próximo reinicio y acorte sus ciclos de reinicio.
Los contenedores comparten el kernel del host
Un contenedor no dispone de un kernel independiente. Si ejecuta uname -r dentro del contenedor de su API, verá la versión del host. Actualizar la imagen base no modifica esto, por lo que una vulnerabilidad del kernel accesible desde el interior del contenedor representa una vía directa hacia el host.
En un clúster de Kubernetes, un solo comando muestra el kernel de cada nodo en la columna KERNEL-VERSION:
kubectl get nodes -o wide
Este vector ya se ha explotado con anterioridad. En un incidente independiente, SecurityWeek informó de que agentes de OpenAI explotaron un fallo conocido del kernel, CVE-2026-53362, y consiguieron privilegios de root en un nodo worker subyacente desde dentro de un contenedor, en el propio entorno de OpenAI. Ese fallo no forma parte de los 948.
OpenAI destaca dos opciones de aislamiento para limitar el radio de impacto:
| Opción | Cómo aísla | Casos de uso adecuados |
|---|---|---|
| gVisor | Un kernel de aplicación en espacio de usuario gestiona las llamadas al sistema del contenedor en lugar de transferirlas al kernel del host | Contenedores que ejecutan código no confiable o procesan entradas de riesgo |
| Firecracker | Ejecuta cargas de trabajo en microVM ligeras sobre KVM, con aislamiento a nivel de hardware | Servicios multi-tenant y cargas de trabajo dedicadas por cliente |
En Kubernetes, puede seleccionar un entorno de ejecución aislado por pod mediante RuntimeClass. Configure runtimeClassName primero en sus cargas de trabajo más expuestas, como cualquier componente que ejecute código de clientes.
Parchee también estas capas. OpenAI indica que las pruebas en su propia infraestructura la llevaron a divulgar y parchear vulnerabilidades en Kata, Moby/Docker, gVisor y otros proyectos. Un sandbox limita el impacto, pero sigue siendo software.
Reduzca el alcance de un punto de apoyo comprometido
Asuma que obtener privilegios de root en un host es posible. A partir de ahí, determine a qué puede acceder el usuario root en ese host.

- Divida las cuentas de servicio compartidas. Otorgue a cada servicio su propia identidad, de modo que una credencial comprometida no dé acceso a todos los sistemas. Nuestra guía sobre claves de API con privilegios mínimos para agentes también se aplica a los servicios.
- Elimine los tokens que una carga de trabajo no necesite. En Kubernetes, configure
automountServiceAccountToken: falseen los pods que nunca realizan llamadas a la API de Kubernetes. - Mantenga los secretos de larga duración fuera del nodo. El usuario root puede leer variables de entorno y archivos montados, por lo que conviene priorizar credenciales de corta duración.
- Rote las credenciales tras cualquier brecha. Si detecta ejecución de código en un host, considere expuesto cualquier secreto alojado en esa máquina. Que una cuenta parezca limpia no garantiza que el sistema no haya sido comprometido a nivel de root.
Posteriormente, audite el resto con una lista de comprobación de pruebas de seguridad para API, ya que cada fallo que cierre allí representa un punto de apoyo menos para un atacante.
Deje que su agente de programación verifique la API tras aplicar los parches
El verdadero obstáculo para realizar actualizaciones frecuentes del kernel es el miedo al reinicio. Ejecutar pruebas de regresión antes y después elimina esa incertidumbre. Indique a su agente de programación que ejecute la misma suite de pruebas con la CLI de Apidog antes y después de la actualización, y luego compare los resultados.
Configúrelo una sola vez:
npm install -g apidog-cli@latest
apidog login --with-token <YOUR_TOKEN>
npx -y skills add https://apidog.com # pick your agent when prompted
Luego proporcione una sola instrucción a su agente:
Find my API regression suite in Apidog project <id> and run it against the
staging environment. Save the reports to reports/before. Stop and wait while
I update the kernel and reboot. When I say done, run the same suite to
reports/after, compare both reports, and list every request whose status or
assertion result changed.
El agente ejecuta estos comandos:
apidog test-suite list --project <id>
apidog run --test-suite <id> --project <id> -e <envId> -r cli,junit --out-dir reports/before
# you update the kernel and reboot
apidog run --test-suite <id> --project <id> -e <envId> -r cli,junit --out-dir reports/after
Comience en staging y repítalo en un nodo de producción antes de desplegarlo en toda la flota. Una petición con cambios le indicará dónde investigar antes de que fallen más nodos.
El informe del agente requiere la misma cautela que el pipeline de OpenAI. En una ejecución inicial, 20 de los 200 exploits reportados obtuvieron acceso root a través de un 0-day distinto al asignado, por lo que OpenAI implementó una verificación independiente. Compruebe el proceso que conduce al resultado, no solo el resultado final: confirme mediante uname -r o su herramienta de live patching que la actualización se aplicó antes de dar por válido el informe posterior («after»).
La misma ejecución con -r junit se integra sin problemas en CI. Consulte la guía de CI/CD para la CLI de Apidog, la referencia del comando apidog run y nuestra introducción a las pruebas de regresión de API. El plan gratuito de Apidog admite hasta 4 usuarios.
A qué prestar atención a partir de ahora
- Los avisos de seguridad de su distribución. Llegarán más correcciones a medida que OpenAI y sus socios envíen informes, por lo que cabe esperar un goteo constante en lugar de una única actualización masiva.
- Un desarrollo de exploits cada vez más rápido. OpenAI anticipa que, en cuestión de pocos años, incluso modelos con menores capacidades podrán desarrollar exploits una vez que las vulnerabilidades se hagan públicas.
Preguntas frecuentes
¿Son remotos los 948 exploits de Linux? No. Son exploits de escalada local de privilegios, por lo que un atacante ya debe contar con la capacidad de ejecutar código como usuario con bajos privilegios. Un fallo remoto en su aplicación puede proporcionar ese punto de apoyo inicial, razón por la cual los equipos de API deben prestar atención.
¿Está afectada mi versión del kernel? OpenAI no publica ninguna lista de versiones afectadas, por lo que nadie puede asegurarle un número de versión libre de vulnerabilidades. Instale las actualizaciones de seguridad más recientes de su distribución y reinicie el sistema con ese nuevo kernel.
¿Se están explotando estos fallos en entornos reales? La publicación de OpenAI no reporta ataques activos que utilicen estos 948 fallos. Muchos de ellos aún se encuentran en proceso de notificación y parcheo. En cualquier caso, parchee cuanto antes: las correcciones públicas pueden indicar a los atacantes dónde buscar vulnerabilidades.
¿Sustituye el live patching al reinicio? No. Los parches en vivo cubren exclusivamente correcciones seleccionadas, y los proveedores advierten de que ciertas soluciones solo se distribuyen en el paquete completo del kernel. Utilícelos para ganar margen de tiempo hasta su próximo reinicio.
¿Se soluciona una vulnerabilidad del kernel actualizando la imagen del contenedor? No. Los contenedores comparten el kernel del host, por lo que es necesario actualizar y reiniciar el host o nodo. Actualice también sus imágenes, ya que en ellas residen las dependencias de su aplicación.
