Se ha descubierto una vulnerabilidad en la biblioteca estándar de C Musl (CVE-2024-2961), que provoca un desbordamiento de búfer al convertir texto específicamente diseñado de la codificación EUC-KR a UTF-8 mediante la función iconv(). La vulnerabilidad se manifiesta a partir de la versión musl 0.9.13 y se corregirá en el próximo lanzamiento 1.2.6 (hasta la publicación de la actualización, se debe utilizar un parche). La vulnerabilidad fue detectada por el acompañante de la biblioteca libxml2 durante pruebas de fuzzing.
La vulnerabilidad puede ser utilizada para llevar a cabo ataques en aplicaciones construidas con la biblioteca Musl que realizan la recodificación de texto proveniente de fuentes externas. La explotación de la vulnerabilidad es posible al invocar en la aplicación la función iconv_open() especificando la codificación de origen EUC-KR y la codificación de destino UTF-8. Se mencionan como ejemplos de aplicaciones potencialmente vulnerables aquellas que recodifican XML, HTML y correos electrónicos basándose en la codificación establecida en el encabezado con el tipo MIME (por ejemplo, "text/plain; charset=EUC-KR"). Por ejemplo, este tipo de recodificación es realizada por programas que utilizan la biblioteca libxml2.
La vulnerabilidad es causada por una combinación de dos errores. El primer error está relacionado con la falta de una verificación adecuada de secuencias multibyte incorrectas en el decodificador EUC-KR. El segundo error se encuentra en el codificador UTF-8, que no fue diseñado para manejar el caso en que el decodificador de los datos de entrada puede devolver valores escalares de Unicodе no válidos. Como resultado, el procesamiento de secuencias como «\xc8\x41» lleva a escribir valores fuera del búfer asignado.
Fuente: opennet.ru
