Noticia Detectaron varias vulnerabilidades en GNU Screen que permitían obtener privilegios root

vulnerabilidad


Hace pocos días, se dio a conocer información sobre una auditoría de seguridad que reveló cinco vulnerabilidades críticas en el popular multiplexor de terminal GNU Screen, utilizado para gestionar múltiples sesiones de consola en una única terminal.

Una de las cuales (CVE-2025-23395, la vulnerabilidad más peligrosa) permite a un atacante obtener privilegios de root en sistemas afectados (la vulnerabilidad afecta únicamente a la versión 5.0.0 de GNU Screen), incluida en distribuciones como Fedora, Arch Linux, NetBSD, entre otras. En cambio, otras como Debian, Ubuntu y RHEL aún utilizan la rama 4.x, que no es vulnerable a este fallo en particular.

CVE-2025-23395: escalada de privilegios crítica​


Se menciona que el problema se produce cuando GNU Screen se ejecuta con el bit setuid root (caso de Arch y NetBSD), ya que la función logfile_reopen() se ejecuta antes de bajar privilegios, lo que permite que el usuario manipule los registros para que se escriban archivos arbitrarios como root. En una explotación típica, el atacante elimina el archivo de log original y lo reemplaza por un enlace simbólico hacia un archivo del sistema. Al volver a abrir el archivo, Screen lo escribe con permisos root, permitiendo que el contenido malicioso.

Este problema afecta a Screen 5.0.0 cuando se ejecuta con privilegios setuid-root. La función logfile_reopen()no elimina los privilegios al operar en una ruta proporcionada por el usuario. Esto permite a usuarios sin privilegios crear archivos en ubicaciones arbitrarias con rootla propiedad, la propiedad del grupo (real) del usuario que los invoca y el modo de archivo 0644. Todos los datos escritos en el PTY de Screen se registrarán en este archivo. También se pueden usar archivos ya existentes para el registro de esta manera: los datos se añadirán al archivo en cuestión, pero el modo de archivo y la propiedad se mantendrán sin cambios.

Este ataque puede llevar al control total del sistema si se explota adecuadamente, ya que permite modificar archivos sensibles o alterar scripts de inicio. Fedora está parcialmente protegido gracias a que Screen se instala con el bit setgid, limitando la superficie del ataque.

Otras vulnerabilidades relevantes​


La auditoría, realizada por el equipo de seguridad de SUSE Linux, también identificó otros fallos importantes:

  • CVE-2025-46802: en sesiones multiusuario, un atacante puede obtener permisos globales de lectura y escritura en dispositivos TTY como /dev/pts/1, afectando tanto a la rama 4.x como a la 5.x.
  • CVE-2025-46803: la rama 5.0 establece permisos inseguros (0622) en dispositivos PTY, permitiendo escritura por parte de cualquier usuario.
  • CVE-2025-46804: una fuga de información permite deducir la existencia de archivos o directorios usando mensajes de error al definir la variable SCREENDIR.
  • CVE-2025-46805: una condición de carrera al enviar señales SIGCONT y SIGHUP puede provocar una denegación de servicio.

Se detectó además un mal uso de strncpy, que puede provocar bloqueos al ejecutar comandos con formato especial, problema exclusivo de la rama 5.0.

Falta de mantenimiento y apoyo de SUSE​


El descubrimiento de estas vulnerabilidades ha expuesto problemas más profundos en el mantenimiento de GNU Screen. Según el equipo de SUSE, los actuales responsables del proyecto no comprenden completamente la base de código ni los problemas de seguridad, lo que los obligó a desarrollar por su cuenta parches para parte de los fallos descubiertos. El reporte fue enviado a los desarrolladores el 7 de febrero, pero no fue posible corregir todo el conjunto de vulnerabilidades en los 90 días de gracia acordados.

¿Qué hacer si usas GNU Screen?​


Los usuarios de sistemas que incluyen Screen 5.0.0 con setuid root deberían actualizar inmediatamente a la versión 5.0.1 o revertir temporalmente a una versión 4.x si no hay paquetes disponibles. Como medida de mitigación, también se puede eliminar el bit setuid del ejecutable de Screen:

sudo chmod u-s /usr/bin/screen

Sin embargo, esto puede afectar funcionalidades como el uso compartido de sesiones entre usuarios. Finalmente, cabe mencionar que versión 5.0.1, publicada recientemente, corrige este y otros fallos, y ya está disponible en distribuciones como Arch Linux y FreeBSD.

Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Continúar leyendo...