
LibXMP におけるスタックオーバーフロー
libxmp(モジュール音楽再生ライブラリ)の depack_pha() 関数にスタックベースのバッファオーバーフローの脆弱性が存在します。この脆弱性は、不正に作成された Pha Packer (PHA) モジュールファイルを解析する際にトリガーされます。
ローカルスタックバッファに対する境界チェックが不適切なため、攻撃者は配列の境界外にデータを書き込むことができ、サービス拒否 (DoS) や、特定の条件下ではリモートコード実行 (RCE) につながる可能性があります。
ビルド:
gcc -g -O0 -I./libxmp/include poc.c poc_data.h ./libxmp/lib/libxmp.a -lm -lz -o poc_crasher
スタックバッファオーバーフロー
libxmp プロジェクト GitHub: https://github.com/libxmp/libxmp Issue: https://github.com/libxmp/libxmp/issues/847
src/loaders/prowizard/pha.c 関数: depack_pha()
サービス拒否 (DoS) 特定のビルド条件または実行時条件下でのリモートコード実行 (RCE) の可能性
攻撃者は、Pha Packer 形式の悪意のある .mod または .pha ファイルを作成し、libxmp にリンクされた任意のアプリケーションに送り込むことができます。不正なファイルは、depack_pha() のパターン解析中にスタックバッファオーバーフローを引き起こします。
この問題は、GitHub Issues を通じて libxmp メンテナに報告中です。
Gareth C - https://www.anchorsec.co.uk