Se dio a conocer información sobre una vulnerabilidad (ya catalogada bajo CVE-2023-43641) que fue identificada en la biblioteca libcue, la cual es utilizada para analizar metadatos con información sobre el orden y la duración de las pistas de audio.
Para quienes desconocen de libcue, deben saber que es una biblioteca que se utiliza para analizar hojas de referencia, un formato de metadatos para describir el diseño de las pistas en un CD. Las hojas de referencia se utilizan a menudo en combinación con el formato de archivo de audio FLAC, lo que significa que libcue es una dependencia de algunos reproductores de audio.
Se menciona que la gravedad de la vulnerabilidad, se debe a que esta permite la ejecución de código al procesar archivos cue especialmente diseñados. Además, la biblioteca libcue se utiliza en el motor de búsqueda tracker-miners utilizado en el entorno de usuario GNOME.
Dado que tracker-miners indexa automáticamente nuevos archivos multimedia en el directorio de inicio, para atacar los sistemas GNOME y hacer que se ejecute el código del atacante, todo lo que necesita es que el usuario simplemente añadir un archivo especialmente diseñado en alguna de las siguientes carpetas ~/Descargas, ~/Música o e en la carpeta de Videos, sin tener que abrirlo (por ejemplo, en algunos casos, basta con hacer clic en un enlace en el navegador).
La arquitectura de dos procesos de los rastreadores-mineros es útil para la explotación. En primer lugar, es mucho más fácil predecir el diseño de la memoria en un proceso recién iniciado que en uno que ya ha estado ejecutándose durante horas, por lo que el hecho de que tracker-extract solo se inicie bajo demanda es muy conveniente.
Aún mejor, tracker-extract siempre crea un hilo nuevo para escanear el archivo descargado, y descubrí que el diseño del montón en el campo malloc del hilo es muyconsistente: varía entre distribuciones…
Sobre la vulnerabilidad, se menciona que esta es causada por un desbordamiento de enteros en el código de análisis del parámetro INDEX y ocurre cuando se especifican valores numéricos demasiado grandes en este parámetro que no encajan en el tipo «int».
En un ejemplo sencillo:
TRACK 01 AUDIO TITLE "Never Gonna Give You Up" ... INDEX 01 00:00:00 TRACK 02 AUDIO TITLE "Whenever You Need Somebody" ... INDEX 01 03:35:00
La vulnerabilidad está en el manejo de la sintaxis INDEX, la cual ocurre al reemplazar una de esas declaraciones. Con esto activará el error:
INDEX 4294567296 0
Para convertir una cadena en un número, se utiliza la función atoi, por ejemplo, si especifica el número 4294567296, se convertirá a -400000. La vulnerabilidad está causada directamente por la falta de comprobar el valor resultante para garantizar que pueda ser negativo. La segunda parte del problema (y esta es la vulnerabilidad real) es que track_set_indexno se verifica que i ≥ 0:
void track_set_index(Track *track, int i, long ind) { if (i > MAXINDEX) { fprintf(stderr, "too many indexes\n"); return; } track->index[i] = ind;
La vulnerabilidad sucede como resultado en el código después de la conversión de atoi, se realiza la operación, en la que a «i» se le puede asignar un número negativo para sobrescribir el área de memoria fuera del búfer con el valor «ind», que también se carga desde el archivo que se está procesando.
Los investigadores que identificaron la vulnerabilidad, mencionan que han preparado un exploit funcional y demostraron la capacidad de explotar entornos basados en Ubuntu 23.04 y Fedora 38. El código del exploit se publicará más adelante para dar tiempo a los usuarios a instalar una actualización que elimine la vulnerabilidad. El exploit tiene un funcionamiento estable, pero requiere adaptación para cada distribución.
En la mayoría de las distribuciones de GNOME, tracker-miners están habilitados de forma predeterminada y se cargan como una dependencia física del administrador de archivos Nautilus (archivos GNOME). Se menciona que tracker-miners puede ser deshabilitado directamente por parte del usuario. Puedes consultar los detalles para poder deshabilitar tracker-miners en el siguiente enlace.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
from Desde Linux https://ift.tt/4qnPSLQ
via IFTTT
No hay comentarios.:
Publicar un comentario