9 de enero de 2014

SERVIDOR X11. Descubierta vulnerabilidad que le afectaba desde hace 23 años

Se ha corregido una vulnerabilidad de desbordamiento de pila que afecta al servidor X11. El fallo permitiría a un atacante local elevar privilegios a root a través de un archivo de fuentes de usuario.

 X11 es un servidor gráfico, desarrollador por el MIT a mediado de los años 80, que provee de interfaz gráfica a los sistemas UNIX. La arquitectura cliente-servidor permite utilizar un solo servidor X11 sobre múltiples clientes.
 Se da la curiosa circunstancia de que el fallo encontrado estaba presente desde el año 1991 y, presumiblemente, no ha sido conocido hasta ahora. El error no ha sido encontrado tras una laboriosa investigación o revisión concienzuda del código, el fallo fue detectado tras procesar el código fuente a través de la herramienta de análisis estático "cppcheck".
  El fallo que afecta al servidor X11 se encuentra en la librería libXfont, librería usada para dibujar tipografías, concretamente en el archivo "lib/libXfont/src/bitmap/bdfread.c". Tal y como se puede deducir de la propia advertencia de cppcheck:
[lib/libXfont/src/bitmap/bdfread.c:341]: (warning)
 scanf without field width limits can crash with huge input data.
Detalle e Impacto de la vulnerabilidad
  • Esta función se usa cuando se están procesando archivos BDF (Glyph Binary Distribution Format), un formato de archivo para almacenar mapas de bits de fuentes propiedad de Adobe.
  • Dichos archivos pueden ser manipulados por un atacante para incluir nombres de carácter arbitrariamente largos que permitan sobrescribir el búfer reservado. 
  • Si se consigue explotar es posible elevar privilegios y ejecutar código arbitrario con permisos de root.
 Más información:
X.Org Security Advisory: CVE-2013-6462: Stack buffer overflow in parsing of BDF font files in libXfont
CVE-2013-6462: unlimited sscanf overflows stack buffer in bdfReadCharacters()
Una al día (9/01/2014)

Fuente: Hispasec