
PoC для CVE-2023-38545, переполнения кучи в обработке SOCKS5-прокси в curl, демонстрирующий эксплуатацию через уменьшение буфера с ограничением скорости.
Этот POC основан на более раннем POC, созданном UTsweetyfish, опубликованном в этом репозитории: https://github.com/UTsweetyfish/CVE-2023-38545. В отличие от того POC, этот предназначен для инструмента командной строки, а не для библиотеки libcurl, и не требует Python и компиляции
Этот POC предназначен для переполнения кучи SOCKS5 в curl и показывает, как переполнить приемный буфер в инструменте командной строки curl. По умолчанию curl инициализирует приемный буфер размером 100 КБ, что делает его невосприимчивым к CVE-2023-38545. Но размер этого буфера можно уменьшить, установив ограничение скорости (--limit-rate).
Чтобы запустить POC, сначала настройте локальный SOCKS5-прокси с помощью SSH (для этого требуется локально запущенный SSH-сервер):
ssh -fND 10801 localhost
Затем запустите скрипт poc.sh (для этого требуется установленный Netcat (nc)):
./poc.sh
Может потребоваться несколько попыток, чтобы вызвать переполнение буфера. Если переполнение произойдет, скрипт завершится с кодом ошибки и сообщением об ошибке, указывающим, что выполнение было прервано. Если переполнение не произошло и curl не пострадал, то отображается сообщение о том, что хост с именем "AAAA...." не может быть разрешен.
Ссылки: