Kamailio 6.1.3と6.1.4に脆弱性、修正コミット公開
Kamailio 6.1.3と6.1.4のP-CSCF向けモジュールに、認証なしでプロセスを停止させられる脆弱性が見つかりました。IMS基盤を運用する組織は、該当の版とモジュールの使用を確認し、修正を含む版へ更新してください。
急ぎ度: 早めに
CVSS v3は9.8で認証もユーザー操作も要らず、修正コミットも公開されていますが、影響は該当の2版でP-CSCFのモジュールを使う環境に限られます。
関係があるか
KamailioをIMSのP-CSCFとして動かし、ims_registrar_pcscfモジュールを読み込んでいる環境が対象です。通信事業者や、VoLTEなどの音声基盤を自前で持つ組織が主に当てはまります。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| Kamailio(ims_registrar_pcscfモジュール) | v6.1.3、v6.1.4 | 修正コミットは公開済み。修正を含むリリースの版番号は、Kamailioのリリース告知で確認してください |
確かめ方
- 1
kamailio -vで稼働中の版を確認し、6.1.3か6.1.4に当たるかを見ます。 - 2設定ファイルで
ims_registrar_pcscfを読み込んでいるかを調べます。読み込んでいなければ、この脆弱性の対象外です。 - 3ディストリビューションのパッケージで入れている場合は、配布元の更新情報で修正が取り込まれた版かを確認します。
何が起きたか
Kamailio 6.1.3と6.1.4に、細工したメッセージを受け取るとP-CSCFのプロセスが停止する脆弱性があります。2026年11月2日に公表されました。
原因はims_registrar_pcscfモジュールにあります。application/reginfo+xml形式のNOTIFYメッセージを処理する process_contact() が、aliasパラメータにあるポート番号の値を、長さを確かめずに5バイトの固定領域へ書き込みます。スタック上のバッファ溢れ(CWE-121)で、領域の外側が壊れます。
修正は、Kamailioのリポジトリでプルリクエストとコミットとして公開されています。
攻撃の流れ
-
1
細工したNOTIFY
reginfo+xml形式で、aliasパラメータのポート値を異常に長くしたNOTIFYがP-CSCFに届きます。
-
2
長さを検証せず複写
process_contact()がその値を、5バイトの固定領域へそのまま書き込みます。
-
3
スタックが破損
領域をはみ出した書き込みで、スタック上のデータが壊れます。
-
4
プロセスが停止
P-CSCFのプロセスが終了し、サービス拒否の状態になります。
どう悪用されるか
認証は要りません。ネットワーク経由で、P-CSCFがSIPメッセージを受け取れる位置から送れば成立し、利用者の操作も必要ありません。CVSSの評価は攻撃の複雑さが低いとされています。
説明に書かれている被害は、P-CSCFプロセスの停止によるサービス拒否です。P-CSCFは端末がIMSに最初につながる窓口なので、止まると、その経路を使う端末の登録や通話ができなくなるおそれがあります。
今すぐやること
-
1
稼働中の版とモジュールを確認する
6.1.3か6.1.4で、ims_registrar_pcscfを読み込んでいるかを調べます。両方に当てはまる場合だけ、以降の対応が必要です。
kamailio -v -
2
修正を含む版に更新する
Kamailioのリリース告知で修正版を確認して更新します。ソースからビルドしている場合は、公開された修正コミットを取り込めます。パッケージ利用なら、配布元の更新を待つか、配布元の告知で対応状況を確認してください。
-
3
更新までの露出を絞る
P-CSCFへSIPメッセージを送れる送信元を、必要なネットワークと機器に限ります。詳しくは回避策の項を参照してください。
-
4
異常終了の跡を調べる
公表から日が浅いため、まず直近のP-CSCFプロセスの異常終了や再起動の記録を確認します。見つかれば、その時刻前後の受信メッセージもログで追ってください。
すぐ更新できないとき
修正版を当てるまでは、P-CSCFへ到達できるSIPの送信元をファイアウォールやSBCで、信頼できる機器とネットワークに限ります。プロセス監視で落ちたときに自動再起動する設定も、停止時間を短くする助けになりますが、攻撃自体は防げません。モジュールの読み込みを外すとP-CSCFの機能が失われるため、現実的な回避策ではありません。ベンダーの告知に別の回避策がないかも確認してください。
背景
Kamailioはオープンソースで動くSIPサーバーで、プロキシや登録サーバーとして広く使われています。ims_で始まる一連のモジュールを組み合わせると、IMS(IP Multimedia Subsystem)の役割も担えます。今回のims_registrar_pcscfは、そのうちP-CSCFの登録処理を受け持つモジュールです。P-CSCFは端末がIMSに最初につながる窓口で、端末からのSIPメッセージを直接受けます。
バッファ溢れの原因は、ポート番号に5バイトの固定領域を使い、長さを確かめていない点です。ポート番号は最大5桁なので、正常な値だけを想定した大きさだったとみられます。外部から届く値を固定長の領域へ複写する処理は、複写の前に長さを検査しないと、こうした脆弱性になります。
よくある質問
Q.CVSSが9.8なのに、被害はサービス停止だけですか。
Q.6.1.3と6.1.4以外の版は対象外ですか。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
ディストリビューション別の修正状況
各ディストリビューションが公開している、この CVE の修正パッケージ修正版は配布版ごとに違うので、リンク先で確かめてください。
- Ubuntu UBUNTU-CVE-2026-106803 kamailio
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
A stack-based buffer overflow exists in Kamailio v6.1.3 and v6.1.4 in the ims_registrar_pcscf module. When processing a crafted application/reginfo+xml NOTIFY message, process_contact() copies an attacker-controlled port value from the alias parameter into a fixed 5-byte stack buffer without validating its length. An unauthenticated remote attacker can trigger stack corruption and terminate the P-CSCF process, resulting in denial of service.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- advisory nvd.nist.gov
- advisory github.com
- patch github.com
- patch github.com
- report github.com
- web gist.github.com
- web github.com