This is some text inside of a div block.
< ブログ一覧に戻る

ZDI-CAN-33367 およびその他5つの Linux 脆弱性の検出と緩和

清水 孝郎
ZDI-CAN-33367 およびその他5つの Linux 脆弱性の検出と緩和
執筆者
清水 孝郎
Subscribe to Threat Research
ZDI-CAN-33367 およびその他5つの Linux 脆弱性の検出と緩和
Published:
October 26, 2026
この記事の内容
TRT in your inbox

Get security briefings from the Threat Research Team

New campaigns, attacker techniques, and detection guidance — straight to your inbox.

Subscribe
シスディグによるファルコフィード

Falco Feedsは、オープンソースに焦点を当てた企業に、新しい脅威が発見されると継続的に更新される専門家が作成したルールにアクセスできるようにすることで、Falcoの力を拡大します。

さらに詳しく
Green background with a circular icon on the left and three bullet points listing: Automatically detect threats, Eliminate rule maintenance, Stay compliant, with three black and white cursor arrows pointing at the text.

本文の内容は、2026年10月24日に Sysdig 脅威リサーチチーム(TRT)が投稿したブログ (https://www.sysdig.com/blog/detecting-and-mitigating-zdi-can-33367-and-five-other-linux-flaws) を元に日本語に翻訳・再構成した内容となっております。

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

6件のバグのいずれにも、現時点では CVE ID が割り当てられておらず、このブログの公開時点で実環境での悪用も報告されていません。しかし、セキュリティチームは今すぐ検知と緩和策を整える必要があります。TuxCare は、ZDI のレポートに含まれる ZDI-CAN-33367 の概念実証(PoC)を再現しており、この悪用によって最新の Ubuntu、Debian、AlmaLinux ディストリビューションでルート権限が奪取されます。 

Sysdig 脅威リサーチチーム(TRT)は、この一連の Linux 脆弱性を精査し、現在の防御対応にどの程度影響するかに基づいて各レポートの優先順位を付けました。本レポートでは、何が開示されたのか、誰が影響を受ける可能性があるのか、各バグについてランタイムの可視化で何を検知できるのか、そしてパッチが提供されるまでの間に防御担当者が何をすべきかを解説します。

タイムライン

日付 イベント
2026年9月30日 ksmbd のメンテナーである Namjae Jeon 氏が、SMB1/SMB2 ディスパッチ競合状態の修正を作成(別のレポーターの功績として記載)
2026年10月20日~21日 ZDI が、公開メーリングリストを CC に含めて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 コードに、ページキャッシュに属するページ上でインプレースの復号を行わせられることを、防御担当者に示しました。これらのページは、そのユーザーが読み取りしかできないファイルを裏付けており、復号処理によって攻撃者のバイト列がそのファイルのキャッシュ済みコピーに書き込まれます。この方法で setuid バイナリや /etc/passwd を標的にすると、ファイルを書き込み用に開くことなく、攻撃者がルート権限を得られます。

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

skb_zerocopy() は同じページを新しいソケットバッファに移動しますが、フラグを引き継ぎません。そのため ESP はフラグを認識できず、インプレースで復号を行い、書き込みがページキャッシュに到達します。TuxCare と Safeguard によると、このコードパスはカーネル 3.14 に由来します。

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

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

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 でルートシェルを再現しました。AlmaLinux は、Dirty Frag の修正が適用された状態でもルート権限を奪取されました。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 パケットの連続と SMB2 パケットを同じ TCP 書き込みにまとめて送信すると、ワーカースレッドが 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

Remote Direct Memory Access(RDMA)トランスポートにおける整数アンダーフローにより、細工されたバッファディスクリプタが最大8 KB のヒープオーバーフローを引き起こします。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)と評価されています。公開されているのはタイトルのみです。dri-devel における Kroah-Hartman 氏の返信は、ダーティトラッキングのコードを指摘しています。パッチはありません。

エクスポージャーは限定的です。vmwgfx は VMware の SVGA 仮想ディスプレイアダプターにのみバインドされるため、このバグが問題になるのは VMware ゲスト、つまり vSphere や Workstation の VM と、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 に対してまだ検証していないと述べています。コストは小さくありません。ルートレスコンテナー、一部のブラウザーのサンドボックス、一部のビルドツールがユーザー名前空間に依存しているため、不要なホストに限定して適用してください。
  • 依存しない: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 のパッチが出るか注視してください。
  • 無効化する:使用しないゲストでは、3D アクセラレーションを無効にするか、vmwgfx モジュールがロードされないようにしてください。

すべての Linux の脆弱性に共通

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

‍

まとめ

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

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

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

About the author

featured resources

セキュリティの専門家と一緒に、クラウド防御の最適な方法を探索しよう