В стандартной Си-библиотеке 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. В дистрибутивах проследить за исправлением уязвимости можно на страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.