В стандартната Си-библиотека Glibc е открита уязвимост (CVE-2024-2961), която води до препълване на буфера при преобразуване на специално форматирани низове в кодирането ISO-2022-CN-EXT с функцията iconv(). Изследователят, открил проблема, планира на 10 май да изнесе доклад на конференцията OffensiveCon, в който се споменава възможността за експлоатация на уязвимостта чрез PHP приложения. Заявено е, че проблемът засяга цялата екосистема на PHP и някои приложения.
При преобразуване на низове в кодирането UCS4, в съответствие с изискванията на RFC 1922, библиотеката добавя определени escape символи, които обозначават части от низа, в които е променена кодирането. Уязвимостта е причинена от некоректна проверка на границите на вътрешните буфери в функцията iconv(), което може да доведе до препълване на буфера с максимум 4 байта. При препълването извън границите на буфера могат да бъдат записани определени фиксирани стойности, като ‘$+I’, ‘$+J’, ‘$+K’, ‘$+L’, ‘$+M’ и ‘$*H’. Въпреки че експлоатацията на подобна уязвимост за изпълнение на код изглежда малко вероятна, според изследователя, открил проблема, това се е оказало достатъчно за подготовка на няколко прототипа на експлоати, за отдалечени атаки на PHP приложения, водещи до изпълнение на код.
Уязвимостта се проявява от 2000 година и е отстранена в разработващата се версия на Glibc 2.40. Поправката е налична и под формата на пачове за версиите на Glibc от 2.32 до 2.39. В дистрибуциите, потребителите могат да следят за поправката на уязвимостта на страниците: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.
Източник: opennet.ru
