
このプロジェクトは、DjVuLibre において既知のヒープ領域外書き込み脆弱性を引き起こす最小限の C++ 実装を提供します。このコードは脆弱性を悪用するものではなく、問題を調査・理解できるように誤った実行経路を再現するだけです。
この脆弱性は、MMR エンコードされた画像チャンクのパーサーに起因します。処理中に MMRDecoder::scanruns 関数は、水平ランをラインバッファにデコードする際に十分な境界チェックを行いません。連続する長さ 0 の水平ランを使用することで、バッファオーバーフローを引き起こし、領域外書き込み (OOB-write) が発生します。
この実装は、台湾・新竹にある国立陽明交通大学 (NYCU) のネットワークセキュリティコースの最終プロジェクトの一部として開発されました。焦点は、実際のライブラリにおいて、パースロジック、未チェックのバッファ仮定、および不正な画像データがどのように組み合わさってメモリ安全性の障害を引き起こすかを理解することにあります。
BUILDING ドキュメントを参照してください。
CONTRIBUTING ドキュメントを参照してください。