Linux Kernel KSMBD の脆弱性 CVE-2023-52440/CVE-2023-4130 の連鎖:N-Day RCE の PoC が登場

0-Click Linux Kernel KSMBD Vulnerability Enables Remote Code Execution via N-Day Exploit

2025/09/16 gbhackers — Linux Kernel の KSMBD モジュールに存在する脆弱性 CVE-2023-52440/CVE-2023-4130 を悪用する攻撃者は、ユーザーによる介入を必要とせずに、標的システム上での任意のコード実行の可能性を得るという。KSMBD とは、ネットワーク・ファイル共有を処理するための、カーネル空間における SMB3 サーバのことである。研究者たちが到達したのは、Linux 6.1.45 の KSMBD に対する安定したエクスプロイトであり、95% 以上の確率でリモート・コード実行 (RCE) を引き起こせる状況である。

このエクスプロイトは、Zero Day Initiative において 2023 年後半から 2024 年初頭にかけて修正された、2つの既知の脆弱性を悪用するものだ。

第一段階では、NTLM 認証プロセスにおいて、ヒープ・オーバーフローの脆弱性 CVE-2023-52440 が、未認証の攻撃者によりトリガーされる。

このエクスプロイトは、SMB2_SESSION_SETUP メッセージ内で、特大サイズのセッション・キー BLOB を作成することで、kmalloc-512 アロケーションで SLUB オーバーフローを強制的に発生させるものだ。

Pivoting from kmalloc-512 overflow to kmalloc-1k overwrite

このオーバーフローは、”writeheap” プリミティブとして機能するため、認証を必要とすることなく、隣接するカーネル・メモリを破壊できる。

2つ目の脆弱性 CVE-2023-4130 は、 EA (Extended Attributes) パーサーに存在する、認証を必要とする境界外読み取りのプリミティブを提供する。それを介して、悪意の EA バッファを作成する攻撃者は、”xattr” メタデータを通じて任意のヒープ内容を漏洩させる。それにより、”writeleak” プリミティブと同等の問題が生じる。

ヒープ・レイアウトの悪用と KASLR バイパス

これらのプリミティブを組み合わせることで、完全な侵害チェーンが可能になる。このリークによりカーネル・ポインタが明らかになるため、KSMBD 接続オブジェクトを保持する kmalloc-1k スラブからのポインタ読取が可能となり、KASLR バイパスが達成されてしまう。

研究者たちの実験の内容は、複数の SMB 接続とセッションを開いてカーネル・オブジェクトをスプレーし、1つの接続が破損するまで繰り返してオーバーフローを引き起こすというものだ。彼らは、ガイド付きのスプレーアンド・チェック・ループを用いて、オーバーフローの被害者とリークされたポインタを確実に特定していった。

KASLR バイパスを利用することで、カーネル ROP ガジェットを構築し、セッションの local_nls ポインタを乗っ取る。任意の free プリミティブにより、何らかのセッションのヒープ・チャンクが接続オブジェクトと重複するため、kmalloc-1k 内の関数ポインタの上書きが可能になる。

最終的に、巧妙に作成された SMB リクエストにより、ROP チェーンを取り込んだ大きなチャンクが割り当てられる。このチェーンは、制御されたメモリにスタックをピボットして引数を設定し、 call_usermodehelper を呼び出すことで、ユーザー・モードのリバースシェルを起動する。

このスリープ・ガジェットはカーネル・スレッドをアクティブに保ち、システム・クラッシュを防ぐものだ。ただし、本番環境において KSMBD が無効化されていることが多いため、影響の範囲は限定的である。

とは言え、KSMBD が有効化されている古い 6.1.x カーネルを実行し、信頼できないネットワークに公開されているシステムは、特に脆弱である。

End-to-End Demo exploit

システム管理者にとって必要なことは、これらの2つの脆弱性がバックポートされ、パッチが適用されている、カーネル 6.1.46 以降へとアップグレードすることだ。

標準的な強化オプション (SMEP/SMAP/KPTI/ランダム・スラブ・フリーリスト) を有効化すると、このエクスプロイトの信頼性は低下するが、脅威が完全に排除されるわけではない。

この N-Day エクスプロイトが浮き彫りにするのは、カーネル空間で実行される複雑なサービスによるリスクである。KSMBD はパフォーマンス上のメリットをもたらすが、リモート・コード実行の攻撃対象領域を拡大する。

管理者にとって必要なことは、カーネルレベルのパフォーマンスが不可欠でない限り、ユーザー空間の SMB サーバを優先し、セキュリティ・アップデートのパッチをタイムリーに適用することだ。

さらに、異常な SMB トラフィックを継続的に監視し、匿名書き込みアクセスを無効化することでリスクは軽減される。カーネル・モジュールの継続的なレビューと、新しいサービスの慎重な導入が、システム・セキュリティの維持において不可欠である。