Productos FTTH

Tienda FFTH desde 2004

Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Vulnerabilidad PinTheft en Linux permite acceso root (LPE)


Se ha publicado un exploit de prueba de concepto (PoC) para una nueva vulnerabilidad de escalada de privilegios locales (LPE) en Linux denominada "PinTheft". Descubierta por Aaron Esau del equipo de seguridad V12, este fallo permite que atacantes locales obtengan acceso de root explotando un error de "double-free" en el zerocopy de RDS. Actualmente ya existe un parche del kernel disponible.
 



Se ha publicado un exploit de prueba de concepto (PoC) para una nueva vulnerabilidad de Escalada de Privilegios Locales (LPE) de Linux denominada "PinTheft".

Descubierto por Aaron Esau, del equipo de seguridad V12, el fallo permite que atacantes locales obtengan acceso root explotando un error de doble liberación (double-free) de zerocopy en RDS.

Actualmente existe un parche para el kernel, lo que ha llevado a los investigadores a hacer público su código PoC.

PinTheft se suma a una lista creciente de vulnerabilidades del kernel de Linux reveladas recientemente, lo que subraya los desafíos de seguridad continuos dentro de los complejos subsistemas de red del kernel y de E/S asíncronas.

La vulnerabilidad reside en la ruta de envío zerocopy de los Reliable Datagram Sockets (RDS). Específicamente, la función rds_message_zcopy_from_user() fija las páginas del usuario una por una durante la ejecución.

Si ocurre un fallo de página posterior, la ruta de error descarta las páginas que ya había fijado. Surge un fallo crítico durante la limpieza posterior del mensaje RDS, que descarta estas páginas por segunda vez porque las entradas de la scatterlist y el recuento de entradas permanecen activos después de que el notificador zcopy se limpie.





Esta condición de doble liberación permite que cada envío zerocopy fallido robe exactamente una referencia de la primera página.

Para convertir este error de recuento de referencias en un arma, el exploit PinTheft aprovecha io_uring. El atacante registra una página anónima como un búfer fijo, asignando a la página un sesgo FOLL_PIN de 1024 referencias.

Luego, el exploit roba sistemáticamente estas referencias mediante envíos zerocopy de RDS fallidos hasta que io_uring se queda con un puntero de página robado. Esta metodología única de robar referencias FOLL_PIN es lo que le da el nombre al exploit.

Exploit de la Vulnerabilidad de Linux PinTheft

El repositorio del PoC proporciona una secuencia de explotación muy estructurada para lograr el acceso root mientras intenta evitar la corrupción permanente del sistema. La ejecución del ataque sigue una cadena precisa de eventos:

  • La selección del objetivo localiza un binario SUID-root legible, priorizando ejecutables como /usr/bin/su, /usr/bin/mount o /usr/bin/passwd.
  • Se crea una copia de seguridad de seguridad del binario en disco antes de la explotación para permitir la restauración manual.
  • La configuración de la página mapea dos páginas y marca la segunda con PROT_NONE para que un envío zcopy de RDS de dos páginas falle de forma predecible.
  • El registro del búfer fijo fija la página objetivo utilizando IORING_REGISTER_BUFFERS, añadiendo 1024 referencias.
  • Un proceso hijo (daemon) mantiene abierto un búfer fijo clonado, evitando que io_buffer_unmap() corrompa las páginas recuperadas más adelante.
  • El robo de referencias ocurre mientras el exploit ejecuta 1024 envíos zerocopy de RDS fallidos, liberando doblemente la primera página durante la limpieza del error.
  • La recuperación de la caché de páginas expulsa la primera página del binario SUID, reasignándola inmediatamente para que la entrada de búfer fijo obsoleta de io_uring apunte a una caché de página activa.
  • Una escritura de búfer fijo colgante utiliza IORING_OP_READ_FIXED para sobrescribir la caché con un pequeño payload ELF malicioso, otorgando una shell de root tras su ejecución.

Aunque la primitiva de explotación es independiente de la arquitectura, el ELF de la shell embebido proporcionado en el PoC está compilado específicamente para entornos x86_64. La vulnerabilidad requiere una configuración específica del kernel para activarse con éxito.

Vulnerabilidad de Linux PinTheft (Fuente: equipo de investigación V12)
  • CONFIG_RDS y CONFIG_RDS_TCP deben estar habilitados.
  • CONFIG_IO_URING debe estar activo con io_uring_disabled=0.
  • El sistema debe permitir el autocargado de módulos para solicitar el transporte TCP.

La exposición por defecto es algo limitada en las principales distribuciones. Según el equipo de investigación de V12, el módulo de kernel RDS requerido solo está habilitado por defecto en Arch Linux entre las distribuciones comunes probadas.

Además, los investigadores advierten que ejecutar el exploit altera la caché de páginas en memoria de binarios SUID críticos.

Reiniciar o vaciar las cachés eliminará la sobrescritura de memoria, pero quienes prueben en máquinas desechables deben tener cuidado de no dejar los sistemas en un estado donde programas comunes ejecuten el payload inesperadamente.

Se recomienda encarecidamente a los administradores aplicar los últimos parches del kernel de sus mantenedores de distribución. Para los sistemas donde el parcheo no sea factible de inmediato o RDS sea innecesario, los administradores pueden mitigar la amenaza poniendo en lista negra completamente los módulos vulnerables.

Ejecutar el siguiente comando evita que los módulos RDS se carguen al arrancar:

printf 'install rds /bin/false\ninstall rds_tcp /bin/false\n' > /etc/modprobe.d/pintheft.conf

Los administradores también deberían eliminar inmediatamente los módulos activos de los sistemas en funcionamiento utilizando:

rmmod rds_tcp rds.

El lanzamiento del PoC de PinTheft coincide con un aumento en la divulgación de exploits del kernel de Linux. Recientemente, investigadores de seguridad publicaron exploits PoC dirigidos a otros LPE de Linux ya parcheados, rastreados como DirtyDecrypt y DirtyCBC.

Estas vulnerabilidades comparten similitudes conceptuales con fallos de escalada a root anteriores y muy conocidos como Dirty Frag, Fragnesia y Copy Fail, resaltando una tendencia actual de atacantes e investigadores que descubren primitivas complejas de corrupción de memoria en los sistemas centrales de Linux.



Fuentes:
https://cybersecuritynews.com/pintheft-linux-vulnerability/

0 comentarios :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.