このリポジトリには、脆弱性のあるバージョンのOpenSSLに影響を与えるCVE-2025-69419の最小限の概念実証(PoC)再現スクリプトが含まれています。
このPoCは、特別に細工されたBMPString friendlyName を処理する際に PKCS12_get_friendlyname() で報告されたヒープ領域外書き込み(heap out-of-bounds write)を実証します。
このプロジェクトの目的は、開発者とセキュリティ研究者向けに簡単なリグレッションテストを提供することです。
このPoCは悪用手法を実装していません。AddressSanitizerによって検出されるメモリ破壊を再現することのみを目的としています。
公開されたアドバイザリによると、この脆弱性はUTF-16(BMPString)からUTF-8への変換中に発生します。具体的には以下の内部です:
PKCS12_get_friendlyname()OPENSSL_uni2utf8()3バイトのUTF-8シーケンスを必要とする文字を含む不正なBMPStringにより、割り当てられたバッファの直前に1バイトのヒープ書き込みが発生します。
build.sh を編集し、お使いのOpenSSLビルドへのパスを設定してください。
次に実行します:
./build.sh
./run.sh
脆弱なASanビルドでの期待される結果:
ERROR: AddressSanitizer: heap-buffer-overflow
WRITE of size 1
スタックトレースには以下が含まれるはずです:
OPENSSL_uni2utf8PKCS12_get_friendlynameAddressSanitizerを使用しない場合、この破壊はヒープ割り当ての直前に1バイト書き込むだけであるため、アプリケーションは実行を継続する可能性があります。ASanは領域外アクセスを確実に検出し、破壊が発生した時点でプロセスを終了します。