Una vulnerabilidad de escalada de privilegios en Linux, recientemente parcheada, ahora cuenta con un exploit de prueba de concepto (PoC) disponible públicamente que permite a atacantes locales obtener privilegios de root en sistemas Arch Linux.
La vulnerabilidad, denominada PinTheft por el equipo de seguridad V12 y que aún espera la asignación de un identificador CVE, existe en el subsistema RDS (Reliable Datagram Sockets) del kernel de Linux y fue corregida a principios de este mes.
PinTheft es un exploit de escalada local de privilegios para un doble liberación en zerocopy de RDS que puede convertirse en una sobrescritura de caché de páginas mediante búferes fijos de io_uring.
V12 explicó que el error se encuentra en la ruta de envío zerocopy de RDS. La función rds_message_zcopy_from_user() fija páginas de usuario una por una. Si una página posterior falla, la ruta de error libera las páginas ya fijadas, y luego la limpieza posterior del mensaje RDS las libera nuevamente porque las entradas del scatterlist y el recuento de entradas permanecen activas después de que se limpia el notificador zcopy. Cada envío zerocopy fallido puede robar una referencia de la primera página.
V12 también publicó un exploit PoC que roba referencias FOLL_PIN hasta que io_uring termina sosteniendo un puntero de página robado, lo que permite obtener un shell de root. Sin embargo, además de tener el módulo RDS cargado en el sistema objetivo, PinTheft requiere condiciones específicas para una explotación exitosa, incluyendo la API de E/S io_uring habilitada, un binario SUID-root legible y soporte para x86_64 en el payload incluido.
Esto limita drásticamente la superficie de ataque. V12 indicó que el módulo RDS está habilitado por defecto solo en Arch Linux entre las distribuciones más comunes. Lamentablemente, el módulo del kernel RDS que esto requiere solo está por defecto en Arch Linux de las distribuciones comunes que probamos.
Se recomienda a los usuarios de Linux en distribuciones afectadas instalar las últimas actualizaciones del kernel lo antes posible. Quienes no puedan parchear inmediatamente pueden utilizar la siguiente mitigación para bloquear intentos de explotación:
Esto ocurre después de una ola de otras vulnerabilidades de escalada local de privilegios (LPE) en Linux divulgadas en las últimas semanas, algunas de las cuales fueron días cero sin parches de seguridad disponibles. Durante el fin de semana, investigadores de seguridad publicaron exploits PoC dirigidos a otra LPE de Linux recientemente parcheada (rastreada como DirtyDecrypt y DirtyCBC), que pertenece a la misma clase de vulnerabilidad que varias otras fallas de escalada a root, incluyendo Dirty Frag, Fragnesia y Copy Fail.
Estas divulgaciones también siguen a informes de que actores de amenazas han comenzado a explotar activamente la vulnerabilidad Copy Fail en ataques. La Agencia de Seguridad de Infraestructura y Ciberseguridad (CISA) agregó Copy Fail a su lista de fallas explotadas en ataques el 1 de mayo y ordenó a las agencias gubernamentales asegurar sus sistemas Linux en un plazo de dos semanas. El mes pasado, las distribuciones de Linux también lanzaron parches de seguridad para una vulnerabilidad de escalada de privilegios a root (denominada Pack2TheRoot y encontrada en el demonio PackageKit) que había pasado desapercibida durante más de una década.