Se dio a conocer hace poco el lanzamiento de la nueva versión correctiva de X.Org , «xorg-server-21.1.12 y xwayland-23.2.5″ en las cuales se han implementado las correcciones de seguridad para múltiples problemas detectados en las implementaciones y que se destaca que aborda 4 vulnerabilidades importantes.
Se menciona que en esta nueva versión se solucionó uno de los problemas identificados que podía ser activado por un cliente que utilice valores «*endian» diferentes al servidor X y realice solicitudes específicas, también se ofrece una solución al permitir bloquear la conexión de clientes con diferente orden de bytes.
Las tres primeras vulnerabilidades son afectadas por esta condición y esto puede llevar a que el servidor X lea valores de memoria y los reescriba en el cliente, hasta que alcance una página no asignada y se segmente. Las versiones 23.1 y posteriores de Xwayland desactivan esta compatibilidad de intercambio de bytes de forma predeterminada, proporcionando una capa de protección contra estos problemas.
Soluciones implementadas en X.Org 21.1.12
De las vulnerabilidades abordadas es en X.Org 21.1.12, la primera de ellas es CVE-2024-31080, la cual es causada por la sobrelectura del búfer/fuga de datos en ProcXIGetSelectedEvents. La nueva versión ofrece una solución al permitir bloquear la conexión de clientes con diferente orden de bytes mediante el parámetro de configuración «AllowByteSwappedClients
» o la opción de línea de comando «+byteswappedclients
«.
Modificar el valor predeterminado para mitigar posibles vulnerabilidades asociadas con la manipulación del orden de bytes es una medida de seguridad crítica. Estas vulnerabilidades surgen cuando se altera el orden de los bytes de los valores, lo que puede llevar a interpretaciones incorrectas y, en última instancia, a la lectura o escritura en áreas de memoria más allá del tamaño del búfer asignado.
Aunque el sistema continúa brindando soporte para clientes con diferentes órdenes de bytes de forma predeterminada, en la práctica, esta compatibilidad se ha utilizado muy raramente en los últimos tiempos. Esto se debe a que la mayoría de las estaciones de trabajo que ejecutan el servidor X están equipadas con procesadores de orden de bytes little-endian (de menor a mayor byte). La conexión de clientes X con orden de bytes big-endian, como en la plataforma s390x de IBM zSystems, es una situación poco común y no representativa de la mayoría de los entornos de usuario.
La segunda vulnerabilidad que fue abordada fue CVE-2024-31081 causada por la sobre lectura del búfer /fuga de datos en ProcXIPassiveGrabDevice del servidor X. Al igual que la anterior, esta vulnerabilidad permite que un cliente con un endianness diferente al del servidor X pueda provocar un comportamiento incorrecto al manipular la función. Se menciona que el fallo fue introducido en la versión xorg-server-1.7.0 (lanzada en 2009).
De las otras dos vulnerabilidades se menciona lo siguiente:
- CVE-2024-31082: causada por una sobre lectura del búfer/fuga de datos en ProcAppleDRICreatePixmap. La vulnerabilidad se encuentra en la función ProcAppleDRICreatePixmap() del servidor X. Afecta específicamente al servidor Xquartz para sistemas MacOS y permite la sobre lectura del búfer de montón y fuga de datos cuando hay diferencias en el endianness entre el cliente y el servidor X. Fue introducida en la versión xorg-server-1.12.0 (2012)
- CVE-2024-31083: causada por la liberación en ProcRenderAddGlyphs. La vulnerabilidad, estaba antes de la versión X11R6.7 (2004), y afecta a la función ProcRenderAddGlyphs() del servidor X. Permite un escenario de uso después de la liberación al manipular los punteros de glifos en el servidor X.
Cabe mencionar que estas vulnerabilidades están marcadas como críticas, ya que la explotación de estas podría permitir a un atacante escalar privilegios en sistemas donde el servidor X se ejecuta con privilegios de root. Además, en configuraciones que utilizan la redirección de sesiones X11 a través de SSH para el acceso, podría conducir a la ejecución remota de código.
Es por ello que sé recomienda que si aún estás utilizando una versión anterior a X.Org 21.1.12, realices la actualización correspondiente. Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.