OVSwrap Open vSwitch Flaw Lets Unprivileged Linux Users Gain Root Access
2026/08/05 gbhackers — Linux で確認されたローカル権限昇格の脆弱性 CVE-2026-64531 は OVSwrap と名付けられており、カーネルの Open vSwitch (OVS) 実装に影響を及ぼすという。権限のないローカル・ユーザーがこの脆弱性を悪用すると、影響を受けるシステム上で root 権限を取得する可能性があり、Linux カーネル・セキュリティ・チームおよび Open vSwitch メンテナとの調整を行った研究者 Asim Viladi Oglu Manizada により、この問題は 7月28日に公表された。

この脆弱性は、Open vSwitch が内部的に生成する Netlink アクション・ストリームを処理する際に発生する整数ラップ・アラウンドに起因し、従来型の不安定なヒープ・ベースのエクスプロイトではなく、決定論的にメモリ破損を引き起こす経路が作り出される。
OVSwrap Open vSwitch の欠陥
Open vSwitch は、クラウド/仮想化/コンテナ/Software-Defined Networking (SDN) 環境で広く使用される、ソフトウェアにより定義される仮想スイッチであり、Linux における OVS 機能は、ovs-vswitchd ユーザー空間デーモンと、パケット・フローを効率的に処理するためのカーネル・データパスに分割されている。
攻撃者は、既存の OVS ブリッジ/実行中の OVS デーモン/ホストレベルの CAP_NET_ADMIN 権限を必要とせず、脆弱なカーネル・コードにアクセスできる。権限のないユーザー名前空間を許可しているシステムでは、分離されたユーザー名前空間とネットワーク名前空間がローカル・ユーザーにより作成され、この脆弱性を悪用する攻撃者は、自身の名前空間に限定されたネットワーク管理能力を取得し、プライベート OVS データパスを確立できる。
OVS により、ユーザーが提供したアクションが Netlink 属性を通じて表現される大きな内部アクション・ストリームへと変換される際に、この脆弱性が発生し、それぞれのネストされた属性は 16-bit の nla_len フィールドを持ち、65,535 bytes 未満に収まる必要がある一方、生成されるストリーム全体は 64 KB を超える可能性がある。
パッチ適用前の OVS は、ネストされた属性ごとの制約を強制していなかったため、この欠陥を突く攻撃者は、数百の接続追跡操作を含む CLONE アクションなど、16-bit の長さ制限を超えるネストされたアクションを送信することが可能だった。その結果、長さの値が小さな値にラップし、後続の解析ロジックが生成されたアクション・ペイロードの途中にあるデータを新しいアクションとして誤解釈するようになる。
この脆弱性を悪用する攻撃者は、特定の接続追跡フィールドを制御できるため、同じメモリ割り当て内の予測可能なオフセットに偽造されたアクション構造を配置できる。公開された PoC コードが実証する方式は、最初にカーネル・ポインタを開示し、続いてカーネル読み取りプリミティブを確立した後、標的のカーネル・メモリに対して制約付きのデクリメント操作を実行するものである。
ビルド固有のオフセットにより、メモリ破損を伴う脆弱性としては異例に再現性が高く、ヒープ・グルーミングが不要になると研究者 Heyitsas は指摘しており、リリースされた PoC コードには、数百の x86-64 カーネル・ビルド向けに事前導出されたデータが含まれると報告されている。
この脆弱性は、2025年3月のカーネル変更により、生成される OVS アクション・ストリームに対する 32 KB 制限が削除された後に、実環境で悪用可能となっている。この変更は、予測不能なフロー変換の失敗に対処するものだったが、ネストされた属性が 64 KB のラップアラウンド・ポイントに到達することを防いでいたそれ以前の保護条件も取り除いたため、この不安全な長さ処理の問題は OVS コード内に約 13年にわたって存在していたことになる。
影響を受ける upstream Linux カーネル
| Kernel series | Affected versions | First fixed version |
|---|---|---|
| 5.15.y | 5.15.180–5.15.211 | 5.15.212 |
| 6.1.y | 6.1.132–6.1.177 | 6.1.178 |
| 6.6.y | 6.6.84–6.6.144 | 6.6.145 |
| 6.12.y | 6.12.20–6.12.96 | 6.12.97 |
| 6.13.y | 6.13.8–6.13.12 | End of life; no upstream stable fix |
| 6.14.y–6.17.y | All releases | End of life; no upstream stable fix |
| 6.18.y | 6.18.0–6.18.39 | 6.18.40 |
| 6.19.y | All releases | End of life; no upstream stable fix |
| 7.0.y | All releases | End of life; no upstream stable fix |
| 7.1.y | 7.1.0–7.1.4 | 7.1.5 |
この問題に対処する Linux メンテナは、U16_MAX を超える長さのネストされた生成アクションを拒否し、値を切り詰めるのではなく、-EMSGSIZE を返すことにした。修正は、アップストリームの Linux バージョン 5.15.212/6.1.178/6.6.145/6.12.97/6.18.40/7.1.5 に含まれており、組織はパッチ適用済みのベンダー・カーネルを直ちにインストールする必要がある。
パッチ適用が遅れる場合、管理者は Open vSwitch が不要であればそのモジュールをアンロードしてブラックリストに登録する必要がある。その上で、運用に支障をきたさない範囲で権限のないユーザー名前空間を制限し、名前空間スコープの CAP_NET_ADMIN 権限を付与されたコンテナについても確認すべきである。
訳者後書:Linux カーネルの Open vSwitch (OVS) 実装における、整数ラップアラウンドの欠陥 CVE-2026-64531 を悪用する権限を持たないユーザーにより、最高権限である root 権限が奪取される恐れがあります。この影響を防ぐため、修正が含まれる最新のカーネルへのバージョンアップを実施する必要があります。更新が困難な状況では、不要な OVS モジュールのアンロードおよびブラックリスト登録を行い、非特権ユーザー名前空間の作成権限を制限することで被害を回避できます。製品を安全に利用するためにも、迅速な環境整備と設定の見直しが推奨されます。
You must be logged in to post a comment.