Hablamos estos días de seguridad en el sentido más amplio y de excepciones y esta es una de ellas: un problema que está sobresaliendo frente a los demás es el que ha afectado a las utilidades de XZ, un formato de compresión bastante extendido entre los sistemas tipo Unix en general y Linux en particular.
El problema de seguridad detectado por un ingeniero de Microsoft en las utilidades de la versión 5.6 de XZ no es la típica vulnerabilidad, sino que es una puerta trasera (backdoor) que ha sido introducida de manera intencionada por una persona que usa Jia Tan como nombre y JiaT75 como pseudónimo. El proceso de introducción de la puerta trasera parece que no fue sencillo, sino que requirió de bastante picardía por parte de esta persona malintencionada. Sin embargo, logró salirse con la suya y el único consuelo que queda es que la puerta trasera fue detectada antes de que la cosa fuera demasiado lejos.
Sobre las capacidades de la puerta trasera y según explica el blog de Red Hat, el binario resultante de la compilación del código fuente tiene la capacidad de interferir en la autenticación de SSH a través de systemd, abriendo así la puerta a que un actor malicioso pueda romper la autenticación de de sshd
(el daemon de SSH) para obtener acceso en remoto a una computadora de manera no autorizada.
Tras destaparse el escándalo, GitHub decidió inhabilitar el repositorio de XZ por violar sus términos de servicio. Esta medida, que se espera sea temporal, se ha tomado con el propósito de prevenir y evitar la propagación de la puerta trasera a más sistemas aparte de los afectados, que al final han sido unos cuantos y no precisamente de la escena underground de Linux.
El hecho de que la puerta trasera fuera introducida en la versión más reciente XZ, o al menos así consta de momento, ha minimizado el impacto a distribuciones de perfil bleeding edge. Dentro del ecosistema de Red Hat, en un principio fue detectada en Fedora 41 y la rama Rawhide de la distribución comunitaria, pero una investigación más exhaustiva detectó que los usuarios de la versión 40 también se vieron afectados si habían habilitado los repositorios de prueba.
En caso de no haber habilitado los repositorios de prueba en Fedora 40, el usuario se habría quedado en el repositorio estable y no habría recibido la versión maliciosa de XZ, la cual tampoco está presente en Fedora 39, RHEL 9 ni debería estar en derivadas como AlmaLinux, Rocky Linux y Oracle Linux.
En lo que respecta a openSUSE, los encargados de la distribución del camaleón han reconocido que introdujeron XZ 5.6.0 en Tumbleweed y MicroOS entre los días 7 y 28 de marzo. Como medida de mitigación se ha revertido la versión de XZ y se han publicado nuevas imágenes de los dos sistemas. Como es de esperar, SUSE Linux Enteprirse y Leap no se han visto afectadas debido a que son mantenidas aparte por su enfoque más empresarial y hacia el suministro de un software más estanco.
Arch Linux también ha distribuido la versión maliciosa de XZ. Los responsables han recomendado actualizar cuanto antes las instalaciones en máquina física y máquina virtual y la imagen de contenedor para Podman y Docker. Los medios que tienen implementada la puerta trasera son el medio de instalación 2024.03.01
, las imágenes para máquinas virtuales 20240301.218094
y 20240315.221711
y las imágenes de contenedor de entre el 24 de febrero de 2024 y el 29 de marzo de 2024. La versión de XZ que contiene la mitigación es la 5.6.1-2. Si el usuario tiene instalada la 5.6.0-1 o la 5.6.1-1, debe actualizar cuanto antes a través de vía estándar: pacman -Syu
Canonical ha publicado que es consciente del problema que ha afectado a las utilidades de XZ y ha eliminado la versión afectada de la biblioteca de las propuestas de compilación de Ubuntu 24.04 LTS. La compañía ha anunciado que está investigando el asunto, cosa normal viendo la gravedad y por lo tanto la prudencia que requiere, y ha mostrado su agradecimiento a los miembros de la comunidad que están contribuyendo al respecto. El hilo de Discourse donde se ha publicado esto ha sido cerrado, así que no hay más información presente en el mismo medio.
Y como no, Debian también se ha visto afectada. Andres Freund, el ingeniero de Microsoft detrás del hallazgo, descubrió la puerta trasera después de detectar problemas de rendimiento en un sistema Debian que estaba usando SSH. Siendo más concretos, vio que el daemon consumía demasiados ciclos del procesador y que Valgrind, un marco con herramientas capaces de detectar automáticamente fallos en la gestión de la memoria y los procesos, le estaba arrojando errores. Las ramas afectadas, siguiendo lo visto en los casos anteriores, son Testing, Unstable y Experimental.
El fallo de seguridad introducido en SSH, que es seguido como CVE-2024-3094, parece atajado, pero ante una situación como esta es preferible mantener la prudencia mientras no se tenga claro que todo está solucionado. Si se quiere comprobar qué versión de XZ está instalada, el usuario puede ejecutar el siguiente comando:
xz --version
Debido a que la puerta trasera está dirigida a SSH, la inhabilitación total de su daemon o su desinstalación del sistema es otra medida de mitigación que debería poder contemplarse, pero aquí entramos en las circunstancias de cada uno. A estas alturas no hace falta decir que toda distribución que suministre XZ 5.6 está afectada si los responsables no han tomado medidas, algo que las grandes del sector ya han hecho.