В стандартната C библиотека Musl е открита уязвимост (CVE-2024-2961), която води до препълване на буфера при преобразуване на специално форматиран текст от кодировката EUC-KR в UTF-8 с помощта на функцията iconv(). Уязвимостта се проявява от версия musl 0.9.13 и ще бъде коригирана в предстоящото издание 1.2.6 (преди публикуването на обновлението следва да се използва пач). Уязвимостта е открита от библиотеката libxml2 по време на тестове за fuzzing.
Уязвимостта може да бъде използвана за извършване на атаки върху приложения, компилирани с библиотеката Musl и извършващи перекодиране на текст, получен от външни източници. Експлоатацията на уязвимостта е възможна при извикване в приложението на функцията iconv_open() с указание на изходната кодировка EUC-KR и целевата кодировка UTF-8. Като примери за потенциално уязвими приложения се споменават програми, които перекодират XML, HTML и имейл съобщения на базата на кодировката, посочена в заглавката с MIME-типа (например, "text/plain; charset=EUC-KR"). Например, подобно перекодиране извършват програми, използващи библиотеката libxml2.
Уязвимостта е причинена от комбинация от две грешки. Първата грешка е свързана с липсата на адекватна проверка на некоректни многобайтови последователности в декодера EUC-KR. Втората грешка присъства в кодера UTF-8, който не е проектиран да обработва, че декодерът на входящите данни може да върне невалидни скалярни стойности на Unicode. В резултат на това обработката на последователности от вида "\xc8\x41" води до запис на стойности извън пределите на заделеното буферно пространство.
Източник: opennet.ru
