VLCメディアプレイヤーのバージョン3.0.0から3.0.23には、攻撃者がヒープメモリの問題を悪用できる2件のセキュリティ脆弱性が存在します。これらの脆弱性は、悪意のあるPNGファイルを処理させるか、攻撃者が管理するRealRTSPサーバーに接続させることでトリガーされる可能性があります。
より深刻な脆弱性であるCVE-2026-56711として追跡されているこの問題は、CVSS v4スコア8.6のヒープ範囲外書き込みの欠陥です。この問題は、VLCのピクチャーバッファ割り当てロジックにおける整数オーバーフローに起因しており、プレイヤーが特別に細工されたPNG画像を処理する際に発生します。
脆弱性のあるルーチンであるAllocatePictureは、src/misc/picture.c内にあり、p->i_pitchにp->i_linesを乗算した値を割り当て総量に加算することで、画像プレーンに必要なサイズを計算します。
両方の変数はinclude/vlc_picture.h内で32ビット整数フィールドとして定義されているため、乗算は結果がsize_t値に拡張される前に32ビット演算で実行されます。
攻撃者は、極端に大きな幅と高さの値を指定することで、PNGのIHDRメタデータを操作できます。この操作により乗算がラップアラウンドしてより小さな値になり、aligned_allocが誤ったサイズのヒープバッファを確保してしまいます。
その後、VLCのPNGデコーダーは、攻撃者が指定した元の寸法に基づいてスキャンラインを書き込むため、確保された領域を超えて書き込むことが可能になります。
現在のチェックではこの状況を防げません。割り当て前のオーバーフロー防止チェックは64ビット演算で除算を実行しますが、その後の上限チェックはすでにラップアラウンドした割り当て値を評価しています。
また、イメージデムクサーは、宣言された画像寸法ではなく入力ファイルのバイト数を検証します。悪意のあるPNGを直接開くか、プレイリストから読み込むだけで脆弱な処理経路がトリガーされ、特別な設定は一切不要です。
この問題はHap SecurityのFabian Wahle氏によって報告されたもので、CWE-190(整数オーバーフローまたはラップアラウンド)およびCWE-787(範囲外書き込み)に分類されます。
別の中程度の深刻度を持つ問題であるCVE-2026-73324は、VLCのRealRTSP処理に影響し、CVSS v4スコアは6.9です。このバグは、RTSPレスポンス処理におけるヌル終端の不備が原因で発生する範囲外読み取りです。
RtspReadLine関数において、VLCはstrncpyを使用してレスポンスデータを固定サイズのバッファにコピーしますが、その際に終端のヌルバイトが含まれることを保証していません。
データガバナンスコンサルティング
悪意のあるRTSPサーバーが4,096バイトを超える長さのレスポンス行を返した場合、VLCは後にこの未終端のバッファをstrdupに渡すため、隣接するヒープメモリ内で偶発的なヌルバイトに遭遇するまで境界を超えて読み取りを続けてしまいます。
攻撃者は、RTSPのSessionヘッダーを通じてこの脆弱な行を送り込むことができます。VLCはこのデータをセッション識別子として保持し、後続のリクエストでサーバーに送り返すため、ヒープメモリ内に保存された機密性の高いクライアントデータが、悪意のあるサーバーに漏洩する可能性があります。
RealRTSPモジュールはビルド時にオプションとされており、一部の配布パッケージでは無効化されている場合がありますが、VideoLANの公式ビルドでは有効になっています。ユーザーは、VLCがこれらの問題に対応した更新版をリリースするまでの間、信頼できない画像ファイルおよびRealRTSPのプレイリストエントリを潜在的に危険なものとして扱うべきです。
マルウェアやフィッシングの発生から24時間以内に、最新動向をSOCで把握しましょう。ANYRUNを試して早期検知でインシデントを未然に防ぎましょう。
翻訳元: https://gbhackers.com/vlc-media-player-flaws/