OpenWrtのodhcpdに重大な欠陥、25.12で修正
OpenWrtでDHCPv6などを担当するodhcpdに、ネットワーク越しの1つのパケットでメモリを破壊できる欠陥が見つかりました。25.12より前の版が対象で、ルーターなどにOpenWrtを使う組織は修正版への更新が必要です。実際の攻撃での悪用が確認されたとの情報は現時点で公表されていません。
急ぎ度: 早めに
CVSS 9.8で認証なしにネットワークから攻撃でき、root権限での実行にもつながり得ますが、実際の悪用の確認(KEV掲載)は公表されていません。
関係があるか
OpenWrtを搭載したルーターやゲートウェイなどで、IPv6のアドレス配布(DHCPv6)や広告(RA)にodhcpdを使っている環境が対象です。DHCPv6の要求が届く範囲にある機器が特に影響を受けます。
| 製品 | 影響を受ける版 | 直った版 |
|---|---|---|
| odhcpd(OpenWrtのDHCPv6/DHCPv4/RAサーバー) | 25.12より前の版 | 25.12 |
確かめ方
- 1OpenWrt機器にログインし、odhcpdのパッケージ版を確認します。25.12より前なら対象です。
- 2DHCPv6サーバーとして動かしているかを確認します。
/etc/config/dhcpのdhcpv6の設定がserverなどになっているインターフェースがあるか見ます。 - 3どの機器にOpenWrtが入っているかを資産台帳で洗い出します。市販ルーターのファームウェアにOpenWrtが組み込まれている場合は、メーカーの告知で対応状況を確認してください。
- 4DHCPv6の要求が届くネットワーク(社内LAN、来客用Wi-Fi、ゲスト用セグメントなど)に機器が接続されているかを確認します。
何が起きたか
OpenWrtでIPアドレスなどを端末に配るソフトウェアodhcpdに、メモリの書き込み範囲を誤る欠陥が見つかりました。端末からの要求に細工が加えられると、機器が確保した作業用の領域をあふれて書き込んでしまいます。認証は不要で、ネットワーク経由のUDPパケット1つで引き起こせます。
具体的には、DHCPv6のIA(アドレスや接頭辞の割り当て)に対する応答を組み立てる処理で、スタック上にある512バイト固定のバッファ pdbuf の末尾を越えて書き込みます。1つのREQUESTに多数のIAオプションが含まれ、応答の空きがほぼ尽きる場合に起きます。同じ呼び出しの流れの中に、独立した2か所のあふれがあります。
odhcpdはOpenWrt上でroot権限で動作します。組み込み機器ではスタックカナリアやASLRといった防御機構が無いことも多く、コード実行が現実的だと評価されています。CWEはCWE-121(スタックベースのバッファオーバーフロー)です。25.12で修正されています。
攻撃の流れ
-
1
細工した要求
攻撃者が、多数のIAオプションを含むDHCPv6 REQUESTを1つのUDPパケットで送ります。
-
2
応答の組み立て
odhcpdが応答を作る際、空きがほぼ無い状態で固定長バッファに書き込みます。
-
3
領域のあふれ
512バイトの `pdbuf` の末尾を越えてスタックのデータを上書きします。
-
4
root権限で影響
防御機構が無い機器ではコード実行に至る可能性があり、少なくともサービス停止のおそれがあります。
どう悪用されるか
悪用には認証も利用者の操作も不要です。攻撃者はDHCPv6の要求を送れるネットワーク上にいる必要があり、多くの場合は同じLANやセグメント内、あるいはDHCPv6のパケットが届く経路が前提になります。WAN側でDHCPv6サーバーとして待ち受けていなければ、外部のインターネットから直接届く可能性は低くなります。ただし公表されている情報だけでは、個々の機器の設定ごとの到達条件までは分かりません。
悪用が成功すると、機器のroot権限でコードが実行される可能性があります。その場合、ルーターの設定の改ざん、通信の盗み見や転送先の書き換え、機器を足場にした社内ネットワークへの侵入などにつながり得ます。防御機構のある環境では、まずodhcpdの異常終了によるアドレス配布の停止が起きやすくなります。
今すぐやること
-
1
対象機器を洗い出す
OpenWrtを使う機器(ルーター、アクセスポイント、小規模拠点のゲートウェイ、検証機など)を一覧にし、odhcpdの版を確認します。
opkg list-installed odhcpd -
2
25.12以降へ更新する
OpenWrtの25.12で修正されたodhcpdに更新します。ファームウェアごとの更新が必要な場合があるため、事前に設定のバックアップを取り、拠点ごとに順番に適用します。
-
3
市販機器はメーカー告知を確認する
OpenWrtをベースにした製品は、メーカーが修正版を提供するまで自分では直せないことがあります。メーカーの告知やサポート窓口で対応状況を確認してください。
-
4
DHCPv6を使わない機器は設定を見直す
IPv6のアドレス配布が不要な機器では、DHCPv6サーバーを無効にできないか検討します。更新までの暫定的な対策として使えます。
-
5
ネットワークの信頼範囲を確認する
来客用Wi-Fiや信頼できない端末が、管理用ネットワークや重要な機器と同じセグメントにないかを確認します。
すぐ更新できないとき
すぐに更新できない場合は、DHCPv6サーバーとして使っていないインターフェースでは dhcpv6 を無効にします。また、信頼できない端末が機器にDHCPv6の要求を送れないよう、セグメントを分けるか、LAN側のアクセスを制限してください。ただしベンダーから公式な回避策は示されていないため、これらは被害を減らす補助的な手段であり、更新の代わりにはなりません。
背景
odhcpdは、OpenWrtで端末へのIPv6アドレスの配布(DHCPv6)、DHCPv4、ルーター広告(RA)を担うサーバーです。小規模拠点や家庭向け、組み込み用途のルーターでよく使われ、社内LANの入口に置かれることが多いため、侵害されると通信全体への影響が大きくなります。
DHCPのように、認証なしで誰からでも受け付けるプロトコルの実装では、細工された入力でメモリの境界を越える欠陥が、これまでも繰り返し問題になってきました。組み込み機器は更新が遅れやすく、防御機構も限られるため、同種の欠陥の影響が大きくなりがちです。
よくある質問
Q.すでに攻撃に使われていますか。
Q.インターネット側から直接攻撃されますか。
Q.IPv6を使っていなければ影響はありませんか。
/etc/config/dhcp の設定で確認してください。まだ分かっていないこと
- 実際の攻撃での悪用や、攻撃コードの公開状況は公表されていません。
- OpenWrtをベースにした市販機器ごとの影響範囲と修正版の提供時期は明らかになっていません。最新の状況は、OpenWrtのセキュリティ告知(GHSA-7fwx-hhrg-3496)と各メーカーの告知で確認してください。
この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 直った版 |
|---|---|---|---|
| openwrt | odhcpd | — | — |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
odhcpd is the DHCPv6, DHCPv4, and router-advertisement server used by OpenWrt. Prior to version 25.12, odhcpd's DHCPv6 IA response handler writes past the end of a fixed 512-byte stack buffer (pdbuf) when a single DHCPv6 REQUEST carries enough IA options to nearly exhaust the reply space. Two independent overflow sites exist in the same call chain, both reachable from the network via a single unauthenticated UDP packet. odhcpd runs as root on OpenWrt; embedded targets often lack stack canaries and ASLR, making code execution realistic. This issue has been patched in version 25.12.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- advisory github.com
- advisory github.com
- advisory nvd.nist.gov
- patch github.com
- patch github.com
- patch github.com
- patch github.com
- patch github.com
- patch github.com