Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
litebox-snp-novalidation-userptr — High local write primitive: LiteBox v0.1.0 SNP UserPtr は NoValidation であるため、guest syscall buf はカーネル VA になり得る | Kitploit
ツール/GitHubGitHub/abraxas/litebox-snp-novalidation-userptr
特権昇格メモリフォレンジック脆弱性分析エクスプロイトセキュリティ仮想化クラウドセキュリティハードウェアセキュリティ論文と研究バイナリエクスプロイト

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
GitHubabraxas/litebox-snp-novalidation-userptr

litebox-snp-novalidation-userptr

High local write primitive: LiteBox v0.1.0 SNP UserPtr は NoValidation であるため、guest syscall buf はカーネル VA になり得る

リポジトリを見る
74日前未レビュー

Abraxas Labs - litebox-snp-novalidation-userptr

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  litebox-snp-novalidation-userptr

litebox-snp-novalidation-userptr

クラス: 書き込みプリミティブ (ゲストからSNPカーネルへのR/W) 到達範囲: ローカル

LiteBox v0.1.0 (d8556e3) - Microsoft

SNP LinuxKernel は UserConstPtr / UserMutPtr を NoValidation に接続しており、これはポインタをそのまま返す。コメントは TODO: implement pointer validation to ensure the pointers are in user space. である。LVBS はすでに USER_ADDR_MIN..USER_ADDR_END (x86_64 では 0x10000 .. 0x7ffffffff000) の範囲チェックを行い、コピーを STAC/CLAC でラップしている。SNP はそうしていない。カーネルVAのゲスト mmap は拒否される (TASK_ADDR_MAX) ため、CPL3 のストアはカーネルヒープに到達できない。syscall パスはカーネルモードで実行されるため、到達できる。memcpy_fallible はスーパーバイザモードでの rep movsb である。

この残存物はゲストからSNPカーネル (VMPL2 LiteBox) へのR/Wである。ホスト VMPL0 でも、ハイパーバイザでも、SNPファームウェアでもない。

IDCVE未割当
クラス書き込みプリミティブ (ゲストからSNPカーネルへのR/W)
到達範囲ローカル (litebox_runner_snp 内の信頼されていないゲストユーザ空間)
CWECWE-823, CWE-119
CVSSHigh: 8.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
製品microsoft/litebox
影響を受けるバージョンv0.1.0 (d8556e33676e47244bfefa139c1e9ff95bd67d53) SNPカーネルプラットフォーム。TODOは 97001fd 時点で origin/main にまだ存在
認証ゲストはすでにSNP VM内で実行中
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ。SNPハードウェアなし

攻撃者ができること

誰: litebox_runner_snp 内の信頼されていないゲストユーザ空間。Issue #505 (オープンRFC) はこのクラスである。LVBSは実装済み。SNPは未実装。

完全性 (ラボで実証されたガジェット)

ラボは、2つのバリデータのスーパーバイザモード copy_from_slice ガジェットと、ピンファイル litebox_platform_linux_kernel/src/lib.rs のコピーである。SNPハードウェア上のゲストsyscallではない。

パス宛先VA結果
SNP NoValidation (恒等)0x1000 (USER_ADDR_MIN 未満) および 0xffff800000000000 (GVA_OFFSET)受理; memcpyが LITEBOX-SNP-NOVALIDATION-USERPTR-WITNESS をカーネルラベル付きオブジェクトに書き込む
LVBS範囲チェック同じカーネル宛先拒否、errno=14 EFAULT、カーネルオブジェクトは空
両方正当なユーザ宛先 0x400000両方ともウィットネスをユーザオブジェクトにコピー
イメージ内のピンファイルn/aTODOコメントと、NoValidation に接続された UserConstPtr / UserMutPtr (LvbsValidateAccess は存在しない)

完全性 (ピンされたsyscallパスから推測)

メソッド + シンク権限
read / readv / pread / recv* / getcwd / uname / epoll_pwait で buf = カーネルVA -> UserMutPtr::copy_from_slice -> memcpy_fallible (rep movsb)syscallあたり最大 MAX_KERNEL_BUF_SIZE (512 KiB)、またはiovecページチャンクを、マップされた任意のSNPカーネルVAに書き込む。ペイロードはゲストが選択 (ゲストが書き込んだパイプ/ファイル)

偵察 (推測)

メソッド + シンク権限
write / writev / send* で buf = カーネルVA -> read_at_offsetマップされたSNPカーネルメモリをゲストfdに読み出す
未マップのカーネルVA例外テーブル経由で EFAULT (どのカーネルページが存在するかのマッパー)

可用性 (推測)

メソッド + シンク権限
SNPカーネルヒープ / ページテーブル / shim TLSの破壊SNPゲストカーネルをクラッシュまたは転用させる。信頼できるRIPガジェットは主張しない

この残存物が与えないもの

  • ホスト VMPL0、ハイパーバイザ、SNPファームウェア
  • LVBS VTL1 (LvbsValidateAccess + STAC/CLAC)
  • カーネルRIPへの sysretq (sanitize_for_user_return は非ユーザRIP/RSPを拒否)
  • カーネルVAのゲスト mmap / mprotect (TASK_ADDR_MAX)
  • Linux/Windowsユーザランドの NoValidation (同一プロセス; そこでのホスト境界はseccompであり、それは兄弟の残存物)
  • それ自体でSEV-SNP C-bitの機密性を破るものではない。これはLiteBox SNPカーネル内のconfused-deputyコピーである

発見方法

v0.1.0の litebox_platform_linux_kernel/src/lib.rs 59-67行目。TODOはmainにまだ存在する。LVBSにはすでに LvbsValidateAccess があり、USER_ADDR_MIN = 0x10000 と USER_ADDR_MAX = 0x7ffffffff000 を持つ。SNPハードウェアは持っていなかった。ラボはピンファイルをコピーし、恒等と範囲チェックを実装し、LVBSチェックが拒否する宛先VAに NoValidation 経由でウィットネスを書き込む。

ラボ

cd lab
./run.sh

ループバック 127.0.0.1:19130。Composeプロジェクト litebox-snp-novalidation-userptr。ウィットネス LITEBOX-SNP-NOVALIDATION-USERPTR-WITNESS。最終行:

SUCCESS litebox-snp-novalidation-userptr novalidation-kernel-write-ok lvbs-range-reject pin-TODO-present user-range-copy-ok LITEBOX-SNP-NOVALIDATION-USERPTR-WITNESS

修正

SNP UserPtr を、LVBSがすでに持つ同じユーザ空間範囲チェック (USER_ADDR_MIN..USER_ADDR_END) に接続し、コピーを例外テーブルの背後に保つこと。カーネルプラットフォームに NoValidation を残さないこと。

ベンダーへの報告はMSRC (https://msrc.microsoft.com/create-report)。microsoft/liteboxに公開GitHub issueを開かないこと。

連絡先

Abraxas Labs - abraxaslabs.tech - github.com/abraxas - @abraxas_null - [email protected]

ツールをダウンロード