Se han publicado versiones corregidas del X.Org Server 21.1.23 y del componente DDX (X Dependiente del Dispositivo) xwayland 24.1.12, que permite el inicio del X.Org Server para ejecutar aplicaciones X11 en entornos basados en Wayland. En las nuevas versiones se han corregido 9 vulnerabilidades. Algunas vulnerabilidades podrían ser potencialmente explotadas para elevar privilegios en sistemas donde el servidor X se ejecuta con derechos de root, así como para la ejecución remota de código en configuraciones donde el acceso se realiza mediante el reenvío de sesiones X11 a través de SSH.
Vulnerabilidades corregidas (identificadores CVE no asignados):
- Desbordamiento de buffer al procesar nombres alternativos de fuentes. El problema es causado por diferentes restricciones en el tamaño del nombre de la fuente en la biblioteca libXfont2 y el servidor X — servidor se asignaba 256 bytes para el nombre, mientras que la biblioteca permitía la transmisión de nombres de hasta 1024 bytes.
- Accesos a la memoria después de su liberación en las funciones miSyncDestroyFence(), FreeCounter() y SyncChangeCounter() debido a errores en la actualización de contadores de referencia.
- Desbordamiento de buffer al procesar ciertos tipos de teclas en XKB. El problema surge debido a un cálculo incorrecto del tamaño de la tabla de códigos de caracteres.
- Desbordamiento de buffer en XKB, que ocurre al procesar solicitudes SetMap debido a la falta de validación adecuada del tamaño de los datos enviados por el cliente.
- Escritura y lectura de datos fuera de los límites del buffer en GLX debido a una verificación incorrecta del tamaño de los atributos recibidos del usuario en la función ChangeDrawableAttributes.
- Acceso a la memoria después de su liberación, que ocurre al cambiar los atributos de la ventana y forzar la llamada al protector de pantalla. El problema puede llevar a la fuga de contenido de la memoria del proceso.
- Escritura en memoria más allá del buffer asignado en funciones DRI2 DRIGetBuffers y DRIGetBuffersWithFormat, que ocurre al solicitar múltiples instancias de DRI2BufferBackLeft, pero una instancia de DRI2BufferFrontLeft.
Fuente: opennet.ru
