GStreamerのrtpL16depayにRCEの弱点、修正コミット公開
マルチメディア基盤GStreamerのrtpL16depayに、細工されたRTPデータでプログラムを乗っ取られるおそれのある弱点が見つかりました。GStreamerで外部からの音声・映像ストリームを受信するアプリや機器が影響を受けます。ベンダーの修正を取り込んだ版へ更新し、まず自社の環境で使われているかを確認してください。
急ぎ度: 早めに
CVSS 9.8の深刻な弱点ですが、実際の悪用が確認されたという情報は現時点で明らかになっておらず、影響は外部のRTPデータを処理する環境に限られるためです。
関係があるか
GStreamerを使って、ネットワークから届くRTPの音声・映像ストリームを処理しているアプリや機器が対象です。メディアプレーヤー、会議・配信系のソフト、カメラや組み込み機器などが当てはまる可能性があります。
| 製品 | 影響を受ける版 | 直った版 |
|---|---|---|
| GStreamer(rtpL16depay エレメント) | 影響を受ける版の範囲は公表されていません | 修正コミットが公開されています。修正を含むリリース版の番号は公表されていません |
確かめ方
- 1
gst-inspect-1.0 --versionでGStreamerの版を確認し、利用中のOSやディストリビューションの告知と照らし合わせます。 - 2
gst-inspect-1.0 rtpL16depayを実行し、該当のエレメントが使える状態かを確認します。見つからなければ、その環境では当該機能は読み込まれていません。 - 3
dpkg -l | grep -i gstreamerやrpm -qa | grep -i gstreamerで、導入済みのGStreamer関連パッケージを一覧します。 - 4GStreamerを内蔵して配布している製品(会議ソフト、監視カメラ、車載・組み込み機器など)は、OSのパッケージ一覧に出ません。各ベンダーの告知を確認してください。
何が起きたか
GStreamerの一部であるrtpL16depayに、外部から届いたデータを処理する際の不具合が見つかりました。細工されたデータを渡されると、プログラムが管理しているメモリの範囲を超えて書き込みが起き、攻撃者が任意のプログラムを実行できるおそれがあります。実行される権限は、そのGStreamerを使っているプロセスのものです。
rtpL16depayは、RTP(音声や映像をリアルタイムに送るための通信方式)で受け取った非圧縮の音声データ(L16形式)を取り出す部品です。RTPのペイロード部分を処理するとき、利用者側から届いたデータの長さを十分に確認しないまま、ヒープ領域のバッファにコピーしていました。弱点の種類はCWE-122(ヒープベースのバッファオーバーフロー)です。
悪用にはこのライブラリとのやり取りが必要で、攻撃の経路は実装によって異なると説明されています。つまり、rtpL16depayを使うパイプラインが外部のデータを受け取る構成かどうかが、影響の大きさを左右します。この問題はZero Day Initiativeにより ZDI-CAN-31143 として報告され、修正のコミットがGStreamerのリポジトリで公開されています。
攻撃の流れ
-
1
細工データ送付
攻撃者が、長さを偽ったRTPのペイロードを含むデータを対象のGStreamerへ届けます。
-
2
L16処理に到達
対象のアプリがrtpL16depayでそのストリームを処理します。
-
3
メモリ破壊
長さの検証が不足しているため、ヒープ上のバッファの範囲を超えて書き込みが起きます。
-
4
コード実行
条件がそろうと、アプリと同じ権限で攻撃者のプログラムが実行されます。
どう悪用されるか
CVSSの評価では、ネットワーク経由で、認証なし、利用者の操作なしで悪用でき、攻撃の難易度は低いとされています。ただし説明文では、このライブラリとのやり取りが必要で、攻撃の経路は実装によって変わると補足されています。実際には、外部から届くRTPデータをGStreamerで受信・処理している環境が主な対象と考えられます。
悪用されると、そのプロセスの権限で任意のコードが実行され、情報の漏えい、データの改ざん、サービス停止につながるおそれがあります。管理者権限や高い権限で動くアプリほど被害は大きくなります。実際の攻撃での悪用が確認されたという情報や、攻撃コードが出回っているという情報は、現時点で明らかになっていません。
今すぐやること
-
1
GStreamerの利用箇所を洗い出す
サーバー、端末、組み込み機器、社内開発のアプリで、GStreamerを使っているものを一覧にします。特に、ネットワークからRTPを受信する用途を優先して確認します。
gst-inspect-1.0 --version -
2
ディストリビューションとベンダーの告知を確認する
OSのセキュリティ情報や製品ベンダーの告知で、この弱点に対応したパッケージや版が出ているかを確認します。修正を含むリリース版の番号は公表されていないため、各提供元の情報が基準になります。
-
3
修正済みの版へ更新する
提供されている修正済みパッケージや製品アップデートを、外部のRTPを受ける環境から順に適用します。更新後は、音声の受信を含む動作確認を行ってください。
-
4
自社でビルドしている場合は修正を取り込む
GStreamerを自前でビルドして配布している場合は、公開された修正コミットを取り込んだうえで再ビルドし、配布済みの製品へ反映します。
-
5
受信経路と権限を見直す
更新までの間、RTPを受け付ける経路を信頼できる送信元に限り、該当のアプリを必要最小限の権限で動かします。
すぐ更新できないとき
ベンダーが公式に示した回避策は公表されていません。更新までの暫定対応としては、RTPの受信口をファイアウォールなどで信頼できる送信元だけに絞る、信頼できない相手からのL16音声ストリームを受け付けない、GStreamerを使うプロセスを低い権限やコンテナ内で動かす、といった一般的な被害低減策が考えられます。これらは修正の代わりにはなりません。
背景
GStreamerは、音声や動画の再生、録画、配信、変換を部品(エレメント)の組み合わせで実現するオープンソースのマルチメディア基盤です。Linuxのデスクトップ環境やメディアプレーヤー、ビデオ会議や配信のソフト、カメラ機器、組み込み機器などに広く組み込まれています。利用者がGStreamerの存在を意識していなくても、製品の内部で動いていることがあります。
メディアの処理部品は、外部から届く複雑な形式のデータを大量に読み込みます。そのため、データの長さの検証不足によるメモリ破壊は、メディア処理ライブラリで繰り返し問題になってきた種類の弱点です。通信データを直接解釈する部分は、悪用された場合に遠隔からの実行につながりやすい点にも注意が必要です。
よくある質問
Q.RTPを使っていなければ影響はありませんか。
Q.すでに攻撃されていますか。
Q.どの版に更新すればよいですか。
まだ分かっていないこと
- 影響を受ける版の範囲と、修正を含むリリース版の番号は公表されていません。
- 実際の攻撃での悪用や、攻撃コードの公開があるかどうかは、現時点で明らかになっていません。
- 公式の回避策があるかどうかは公表されていません。
この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 直った版 |
|---|---|---|---|
| GStreamer | GStreamer | — | — |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
GStreamer rtpL16depay Heap-based Buffer Overflow Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of GStreamer. Interaction with this library is required to exploit this vulnerability but attack vectors may vary depending on the implementation.
The specific flaw exists within the processing of RTP payload elements. The issue results from the lack of proper validation of the length of user-supplied data prior to copying it to a heap-based buffer. An attacker can leverage this vulnerability to execute code in the context of the current process. Was ZDI-CAN-31143.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- advisory zerodayinitiative.com
- advisory gitlab.freedesktop.org
- advisory nvd.nist.gov
- advisory github.com
- web zerodayinitiative.com
- web github.com