ZDI-CAN-33367をはじめとするLinuxの6件の脆弱性、検知と緩和策

Sysdig Threat Research Team

Image

CVE番号の割り当てもマージ済みの修正もないまま、Linuxカーネルの脆弱性に対する実用的なroot権限取得エクスプロイトが公開されました。2026年10月20日、Trend MicroのZero Day Initiative(ZDI)は、ネットワークマネージャーConnManのバグに関するレポート1件をConnManメーリングリストに送信しました。翌21日には、5件のレポートをLinuxカーネルのセキュリティチームに送り、そのすべてを公開メーリングリストにもコピーしています。レポートには再現手順の詳細が含まれており、複数の脆弱性にはパッチが添付されておらず、リリース済みのどのカーネルにも修正が入っていないことが分かります。このうち2件のLinux脆弱性はCVSS 9.0と評価されています。 

6件のバグにはいずれもCVE IDが割り当てられておらず、本記事の公開時点で、実環境での悪用も報告されていません。ただし、セキュリティチームは今すぐ検知と緩和策の整備に着手すべきです。TuxCareは、ZDIのレポートに記載されたZDI-CAN-33367の概念実証(PoC)コードを再現しました。このバグを悪用すると、最新のUbuntu、Debian、AlmaLinuxでroot権限を取得できます。 

Sysdig Threat Research Team(TRT)は今回まとめて公開されたLinuxの脆弱性を精査し、防御側が今日の対応にどれほど影響するかという観点で各レポートに優先順位を付けました。本レポートでは、公開された内容、影響を受ける可能性のある環境、各バグについてランタイムの可視化で何を検知できるか、パッチ公開前に防御側が取れる対策を解説します。

タイムライン

日付 出来事
2026年9月30日 ksmbdのメンテナーであるNamjae Jeon氏が、別の報告者によるSMB1/SMB2ディスパッチ競合状態の修正を作成
2026年10月20~21日 ZDIが6件のレポートをカーネルセキュリティチームに送信し、公開メーリングリストにもコピー
2026年10月21日 ksmbdの修正がメンテナーのksmbd-for-nextブランチにコミットされる
2026年10月21日 SMB DirectのメンテナーであるStefan Metzmacher氏が、報告者にZDI-CAN-33549についてLinux 7.5ブランチでのテストを依頼
2026年10月22日 skb_zerocopy()(ZDI-CAN-33367)のv2パッチがnetdevに投稿され、Eric Dumazet氏がレビュー

影響を受けるバージョン

レポートごとに、露出リスクは大きく異なります。1件は、TuxCareが検証したUbuntu、Debian、AlmaLinuxのリリースを含む主要ディストリビューションに影響します。2件は、カーネル内蔵のSMBサーバーであるksmbdを実行しているホストのみが対象です。もう1件はVMwareゲストのみに影響します。 

各組織は、これらの脆弱性の優先度を決める前に、まず自社の資産を確認してください。 

レポート コンポーネント 影響 露出条件 修正状況(10月22日時点)
ZDI-CAN-33367 skb_zerocopy() ローカル権限昇格(LPE)、PoC公開済み。CVSS 7.8 非特権ユーザー名前空間を許可し、PoCが必要とする特定のネットワークモジュールをロードしているホスト パッチはnetdevに投稿済みだが、未マージ
ZDI-CAN-33774 ksmbdプロトコルディスパッチ リモート、認証前。PoCはヒープ内容の漏えい/クラッシュを引き起こす。CVSS 9.0 ksmbdを実行しているホスト ksmbdのメンテナーツリーでは修正済み。メインラインには未反映
ZDI-CAN-33549 ksmbd SMB Direct リモートからのヒープオーバーフロー。RDMAと書き込み可能な共有が必要。CVSS 9.0 SMB Direct、RDMAインターフェース、書き込み可能な共有を備えたksmbd実行ホスト メンテナーは7.5ブランチの修正で対処できると見ているが、未確認
ZDI-CAN-34068 vmwgfx(VMwareゲスト) LPE。CVSS 8.8 VMware上のLinuxゲスト パッチなし
ZDI-CAN-34076 nvmet 情報漏えい 不明 不明
ZDI-CAN-32005 ConnMan DNSプロキシ ユーザー空間のスタックオーバーフロー。カーネルのバグではない カーネルレベルのバグではない 対象外

ZDI-CAN-33367

修正状況

「net: skbuff: propagate shared-frag marker in skb_zerocopy()”」という小規模なパッチがnetdevに投稿されています。Eric Dumazet氏がレビューし、stable向けのタグも付いていますが、まだマージされていません。

バグの仕組み:再び現れたDirty Frag

今年前半に公表されたDirty Frag(CVE-2026-43284)では、非特権ユーザーがカーネルのIPsec ESPコードを操作し、ページキャッシュに属するページ上でその場(in place)で復号させることが可能でした。これらのページはユーザーが読み取りしかできないファイルの実体であり、復号によって攻撃者の用意したバイト列が、そのファイルのキャッシュ上のコピーに書き込まれます。この手法でsetuidバイナリや/etc/passwdを標的にすれば、ファイルを書き込み用に開くことなく、root権限を奪えます。

Dirty Fragの修正では、こうした共有ページにフラグを立て、ESPがそのフラグを検出したら復号前にコピーを作成するようにしました。ZDI-CAN-33367は、この修正の抜け穴です。 

skb_zerocopy()は同じページを新しいソケットバッファに移しますが、フラグは引き継ぎません。ESPはフラグを認識できないまま、その場で復号し、書き込みはページキャッシュに到達します。TuxCareとSafeguardによると、このコードパスはカーネル3.14にまでさかのぼります。

抜け穴はこれが初めてではない

Dirty Fragの修正が機能するのは、ページを移動させるネットワーク関連のコードがすべてフラグを引き継ぐ場合に限られます。5月以降、カーネルのCVEチームは、別の経路でフラグが失われていたことによるフォローアップのCVEを6件公開しています。

CVE-2026-90049は同じ関数内の別のバグです。そのため、この修正を適用したカーネルでも、ZDI-CAN-33367は修正されていません。

エクスプロイト

PoCの実行には、非特権ユーザー名前空間と、いくつかのネットワークモジュール(nlmon、nft_queue、nfnetlink_queue、cls_u32、act_pedit、act_mirred,、esp4)が必要です。カーネルアドレス空間配置のランダム化(KASLR)の漏えいは不要で、ユーザーが自身の名前空間内で元々得られる権限以外のケーパビリティも要りません。 

エクスプロイトの各ステップは、一般ユーザーのプロセスが発行できるシステムコールで構成されています。

  • 新しいユーザー名前空間とネットワーク名前空間にunshareし、sysctlを書き込む
  • nlmonインターフェースを立ち上げる
  • netlink経由でXFRMステートをインストールする
  • nftablesのNFQUEUEルールを追加する
  • リダイレクト付きのtc peditアクションをアタッチする
  • 127.0.0.1上のソケットへsplice() を実行し、ページキャッシュ上でのその場復号を引き起こす

影響

TuxCareは、AlmaLinux 8~10、CloudLinux 9~10、Debian 12および13、Ubuntu 24.04および26.04でrootシェルの取得を再現しました。AlmaLinuxでは、Dirty Fragの修正を適用済みの状態でもroot権限を奪取できました。CentOS 6および7のカーネルは影響を受けません。この脆弱性はローカル権限昇格(LPE)であるため、攻撃者はまずホスト上でコードを実行できる必要があります。 

ZDI-CAN-33774とZDI-CAN-33549

CVSS 9.0とされた2件のレポートは、いずれもカーネル内蔵のServer Message Block(SMB)サーバーであるksmbdに関するものです。Sambaとksmbdは別物です。 

ファイルサーバーでsmbdを実行している場合、どちらのレポートも該当しません。ksmbdがどこかで動作しているか確認するには、ksmbdカーネルモジュール、ユーザー空間のデーモンksmbd.mountd、TCP 445番でカーネルが保持しているリスナーを探してください。

ZDI-CAN-33774:ディスパッチの競合状態

ksmbdは、リクエストごとにSMB1とSMB2のどちらを処理するかを判断します。攻撃者が短いSMB1パケットを連続して詰め込み、同じTCP書き込みにSMB2パケットを混在させると、ワーカースレッドがSMB1のデータに対してSMB2のハンドラーを実行し、短いバッファの末尾を越えて読み取ってしまうことがあります。この攻撃は認証前に成立します。公開されているPoCは、1回の試行につき28バイトのカーネルヒープを漏えいさせ、カーネルをクラッシュさせることもあります。ZDIは、共有へのアクセスが必要なバッファ越え書き込みの経路を挙げ、このバグをリモートコード実行(RCE)に分類していますが、本記事の公開時点で、コード実行を示す公開情報はありません。

メンテナーのNamjae Jeon氏は、このバグはすでに修正済みだと説明しており、同氏のツリーでもそれが確認できます。コミット68f410faedaf(”ksmbd: wait for negotiation before receiving another PDU”)は9月30日に別の報告者の功績として作成されたもので、まさにこの競合状態を扱っています。このコミットはksmbdのksmbd-for-nextブランチに投入されていますが、リリース済みのカーネルにはまだ含まれていません。

ZDI-CAN-33549:SMB Direct

リモートダイレクトメモリアクセス(RDMA)トランスポートにおける整数アンダーフローにより、細工されたバッファディスクリプターが最大8KBのヒープオーバーフローを引き起こします。33774に比べると、悪用のハードルは高めです。ホストにRDMA対応のインターフェース(ハードウェア、またはソフトウェアドライバーのrxe)があり、SMB Directをネゴシエートするクライアントと、書き込み可能な共有が必要になります。公開されているPoCはカーネルをクラッシュさせます。

SMB Directのメンテナーを務めるStefan Metzmacher氏は、Linux 7.5向けの自身のブランチに入っている修正で対処できると考えています。ただし、本稿執筆時点では確認されていません。UbuntuはSMB Directのサポートをビルドに含めていますが、Debianは含めていません。

ZDI-CAN-34068

ZDI-CAN-34068は、VMwareの仮想GPU用カーネルドライバーであるvmwgfxにおける境界外書き込みで、LPE(CVSS 8.8)と評価されています。公開されているのはタイトルのみです。Kroah-Hartman氏がdri-develで返信し、ダーティトラッキングのコードを指摘しています。パッチはありません。

影響範囲は限定的です。vmwgfxはVMwareのSVGA仮想ディスプレイアダプターにのみバインドされるため、このバグが問題になるのはVMwareゲスト(vSphere、Workstationの仮想マシン、VMwareベースの仮想デスクトップインフラ(VDI))に限られます。Sysdig TRTのテストでは、このデバイスを提供しないLimaやEC2インスタンスでは再現しませんでした。

ZDI-CAN-34076とZDI-CAN-32005

ZDI-CAN-34076(nvmet)は、Non-Volatile Memory Express(NVMe)ターゲットのGet Log Page処理における、未初期化メモリの情報漏えいです。公開されているのはタイトルのみで、カーネルチームは詳細が届くまで対応できないとしています。

ZDI-CAN-32005(ConnMan)は、ネットワークマネージャーConnManのDNSプロキシにおけるスタックオーバーフローです。カーネルではなくユーザー空間のバグであり、本記事の対象外です。

検知

現時点で影響の大きい4件のバグは、システムコールレベルのランタイムセンサーで観測できる内容が異なります。

  • ZDI-CAN-33367:エクスプロイトの一連の動作に特徴があります。プロセスが新しいユーザー名前空間とネットワーク名前空間にunshareし、sysctlを書き込み、nlmonインターフェースを立ち上げ、netlink経由でXFRMステートをインストールし、nftablesのNFQUEUEルールを追加し、リダイレクト付きのtc peditアクションをアタッチしたうえで、127.0.0.1上のソケットへsplice()s を実行します。正規の処理で、単一の非特権プロセスがこれらすべてを行うことはありません。4件の中では、最も検知しやすいバグです。
  • ksmbd(33774と33549):センサーで確認できるのは、ksmbdが露出していること、つまりモジュールがロードされ、ksmbd.mountd が起動し、445番がリッスン状態にあることです。コード実行の後、何かがプロセスを生成したりファイルに触れたりした段階での攻撃者の行動も観測できます。一方で、競合状態やオーバーフローそのものは観測できません。ランタイム検知は最後の砦です。
  • ZDI-CAN-34068:トリガーは、ローカルプロセスがvmwgfxのデバイスノードに対して発行するDRMのioctl()呼び出しです。これで調べる範囲は絞れますが、GPUのioctlはデスクトップやVDIのゲストならどこでも大量に発生するため、単独のシグナルではなく調査の際の補足情報として扱ってください。

Sysdig Secureのお客様は、Sysdig Runtime Behavioral Analyticsポリシーに追加された新しいランタイムルールPage Cache Poisoning via Spliced File Pages to Loopbackで保護されます。このルールは、ZDI-CAN-33367で確認されたシステムコールのパターンに一致します。 今回の開示に含まれるほかの脆弱性のエクスプロイトについても調査を続けており、Sysdig TRTは手法が明らかになり次第、検知ルールを作成します。 

また、侵入経路にかかわらず、お客様は侵害後の検知も引き続き利用できます。これは、侵入経路ではなく、エクスプロイト成功後の影響を検知するものです。

推奨事項

ZDI-CAN-33367

  • ディストリビューションがskb_zerocopy() の修正を配布し次第、パッチを適用してください。CVE-2026-90049の修正のみを含むカーネルでは対処できません。
  • 非特権ユーザー名前空間を制限してください。user.max_user_namespaces=0(Debianではkernel.unprivileged_userns_clone=0 )を設定すれば、公開PoCを阻止できるはずですが、TuxCareはPoCに対する検証はまだ行っていないと述べています。代償は小さくありません。rootlessコンテナー、一部のブラウザーサンドボックス、一部のビルドツールがユーザー名前空間に依存しているため、必要としないホストに限定して適用してください。
  • UbuntuのAppArmorによるユーザー名前空間の制限に頼らないでください。PoCは、コンテナーランチャーパッケージのAppArmorプロファイルを経由して、この制限を回避しました。
  • 可能な範囲でnlmonとact_pedit モジュールをブロックしてください。これらを拒否すればこのPoCは動作しなくなりますが、TuxCareは、バグに至るすべての経路を塞げるとは限らないと注意を促しています。
  • Kubernetesのpodでは、seccompのRuntimeDefaultを適用してください。このエクスプロイトはユーザー名前空間の作成から始まるため、unshare(CLONE_NEWUSER)を呼び出せるコンテナーは攻撃対象になります。Dockerのデフォルトのseccompプロファイルはこの呼び出しをブロックしますが、Kubernetesのpodは、podごと、またはkubeletの--seccomp-default オプションでクラスター全体にRuntimeDefaultを設定しない限り、Unconfinedで動作します。今週は、これをクラスターのデフォルトにする好機です。

ZDI-CAN-33774とZDI-CAN-33549

  • ksmbdが動作している場所を洗い出してください。Sambaのユーザーは影響を受けません。
  • 不要なホストでは、ksmbdをアンロードし、モジュールをブロックしてください。
  • ksmbdを稼働させ続ける必要がある場合は、TCP 445番を信頼できるネットワークに限定してください。
  • ストレージネットワークがRDMAに依存していない限り、SMB Directを無効化してください。

ZDI-CAN-34068

  • VMware上で動作するLinuxゲストを洗い出し、vmwgfxのパッチ公開を注視してください。
  • vmwgfxを必要としないゲストでは、3Dアクセラレーションを無効化するか、vmwgfxモジュールがロードされないようにしてください。

すべてのLinux脆弱性に共通

  • CVEが割り当てられるまでは、ZDI IDとコンポーネント名でレポートを追跡してください。

‍

まとめ

ZDIが公開メーリングリストにもコピーを送ったことで、6件のバグの再現手順の詳細は、修正が間に合っていないものを含め、攻撃者の目に触れる状態になりました。防御側ならご存じのとおり、CVE IDが割り当てられていないからといって、リスクがないわけではありません。6件のうち、公開されたrootエクスプロイト、幅広いディストリビューションへの露出、未マージの修正という3つの条件がそろっているのは、ZDI-CAN-33367だけです。これはDirty Fragのフラグが失われる7番目の経路であり、2026年5月以降すでに6回にわたって保護が漏れてきた脆弱性クラスが、再び開かれたことになります。ksmbdに関する2件のレポートは最も高いスコアが付けられていますが、問題になるのはSambaではなくksmbdが動作している環境に限られます。

防御側にとっての実務上の要点は、今週の作業はスキャナーではなく、露出の確認が中心だということです。また、バグごとに防御側が実際に監視すべき対象が異なる点にも注意が必要です。ZDI-CAN-33367のエクスプロイトは、特徴的なシステムコールの連なりを通じて一般ユーザーのプロセスとして実行されるため、動作中に捕捉できます。一方、ksmbdのバグはホスト上に攻撃者のプロセスが存在しないままカーネルのワーカースレッド内で実行されるため、露出の管理が鍵になります。

影響を受ける組織は、可能な範囲で直ちに非特権ユーザー名前空間を制限し、RuntimeDefaultのseccompを適用してください。あわせて、自社の環境のどこかでksmbdが動作していないかを調べ、ZDI-CAN-33367については、ディストリビューションが修正を配布したその日にパッチを適用してください。

翻訳元: https://webflow.sysdig.com/blog/detecting-and-mitigating-zdi-can-33367-and-five-other-linux-flaws

本記事は webflow.sysdig.com の記事を翻訳・要約したものです。