
Этот репозиторий содержит программу на C для проверки CVE-2024-2961, уязвимости переполнения буфера в функции iconv() библиотеки glibc.
Этот репозиторий содержит программу на C для проверки CVE-2024-2961 — уязвимости переполнения буфера в функции iconv() библиотеки GNU C (glibc). Из-за структуры кучи PHP это переполнение можно использовать для изменения части указателя списка свободных блоков, что в конечном итоге предоставляет примитив произвольной записи в памяти программы. Следовательно, любой злоумышленник, имеющий уязвимость чтения файлов и контролируемый префикс в PHP-приложении, может достичь RCE. Аналогично, принуждение PHP к вызову iconv() с контролируемыми параметрами даёт атакующему те же возможности.
iconv.Убедитесь, что в вашей системе установлена версия glibc 2.39 или старше:
ldd --version
Клонируйте этот репозиторий на свой локальный компьютер:
git clone https://github.com/exfil0/test_iconv.git
cd test_iconv
Используйте GCC для компиляции программы на C:
gcc -o test_iconv test_iconv.c -liconv
Выполните скомпилированную программу:
./test_iconv
gdb, для анализа сбоя и проверки, связан ли он с уязвимостью.Если вы столкнулись со сбоем, вы можете использовать gdb для получения более подробной информации:
gdb ./test_iconv
Внутри GDB запустите программу:
run
Если программа аварийно завершается, вы можете проверить её состояние:
bt
Это покажет вам трассировку стека (backtrace) сбоя, что поможет определить, вызвано ли переполнение данной CVE.
Скомпилируйте программу с AddressSanitizer, чтобы перехватить переполнение:
gcc -fsanitize=address -o test_iconv test_iconv.c -liconv
./test_iconv
AddressSanitizer предоставит подробную информацию, если произойдёт переполнение буфера.
Если уязвимость подтверждена, рассмотрите возможность обновления glibc до версии, в которой эта проблема исправлена. Вы можете загрузить и установить последнюю версию с сайта проекта GNU или через менеджер пакетов вашего дистрибутива.
Для получения дополнительных сведений об этой уязвимости вы можете прочитать следующую исследовательскую статью: Уязвимость GLIBC CVE-2024-2961 открывает путь к RCE: опубликован PoC-эксплойт
Этот код предназначен только для образовательных целей и тестирования. Не используйте его в системах без соответствующего разрешения.