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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-81000 — CVE-2026-81000(TUNderflow)の研究リポジトリ。LinuxカーネルのTUN/TAP受信ヘッドルーム整数アンダーフローによりローカル権限昇格が可能となる脆弱性で、PoC、根本原因分析、ラボ環境構築を含む。 | Kitploit
ツール/GitHubGitHub/0xblackash/cve-2026-81000
特権昇格脆弱性分析エクスプロイトリバースエンジニアリングペネトレーションテスト論文と研究学習と教育バイナリエクスプロイトラボと実践
GitHub0xblackash/cve-2026-81000

CVE-2026-81000

CVE-2026-81000(TUNderflow)の研究リポジトリ。LinuxカーネルのTUN/TAP受信ヘッドルーム整数アンダーフローによりローカル権限昇格が可能となる脆弱性で、PoC、根本原因分析、ラボ環境構築を含む。

1941ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る

⚡ CVE-2026-81000 - TUNderflow

Gemini_Generated_Image_tewwjgtewwjgteww

Linux カーネル TUN/TAP 受信ヘッドルームのメモリ破壊

TUN/TAP ネットワークサブシステムにおける Linux カーネルのメモリ破壊脆弱性であり、受信ヘッドルームの境界チェック不足と、パケット割り当て経路における整数アンダーフローに起因します。


⚠️ 免責事項

このリポジトリは、許可されたセキュリティ研究、脆弱性分析、CTF 環境、カーネルデバッグ、および防御的テストを目的としています。

明示的な許可なく、システムに対して概念実証コードを使用しないでください。


📌 脆弱性の概要

項目詳細
CVECVE-2026-81000
コードネームTUNderflow
コンポーネントLinux カーネル
サブシステムTUN/TAP
影響を受けるコードdrivers/net/tun.c
主要関数tun_get_user()
バグ分類整数アンダーフロー / 範囲外メモリアクセス
影響カーネルメモリ破壊
潜在的な影響ローカル権限昇格
CVSS v3.17.8 — High
攻撃ベクトルローカル
必要な権限低
ユーザー操作なし
ステータス修正済み

CVE アドバイザリでは、この問題を整数アンダーフローと説明しており、これにより skb->data が割り当てられた skb ヘッドの外側に位置する可能性があります。


🧬 脆弱性の説明

この脆弱性は、Linux カーネルの TUN/TAP 受信経路に存在します。

影響を受けるコードは、TUN デバイスに設定された受信ヘッドルームを、パケットのヘッドルームとして、またパケットデータのうちどれだけをリニアに保つべきかを計算する際の両方に使用しています。

そのため、過大なヘッドルーム値は、以下において無効な計算を引き起こす可能性があります:

SKB_MAX_HEAD(align)

提供された値が使用可能な1ページ分のskbヘッドを超える場合、計算がアンダーフローする可能性があります。

概念的には:

Oversized receive headroom
          │
          ▼
     SKB_MAX_HEAD()
          │
          ▼
     Integer underflow
          │
          ▼
    Negative value
          │
          ▼
      size_t wrap
          │
          ▼
Invalid skb data placement
          │
          ▼
Kernel memory corruption

脆弱な実装は次の場所にあります:

drivers/net/tun.c

tun_get_user() が脆弱な経路の中心にあります。


🔬 根本原因

根本的な問題は、TUN 受信ヘッドルームの境界が不十分であることです。

カーネルは、その値を TUN/TAP に伝播するネットワークデバイスの経路を通じて、過大なヘッドルーム要求を受け取る可能性があります。

この脆弱性は、複雑な仮想ネットワーク構成によって大きなヘッドルーム値が TUN デバイスに到達する場合に特に興味深いものとなります。

公開された情報では、以下を含むシナリオが説明されています:

Netkit
   │
   ▼
VXLAN
   │
   ▼
Open vSwitch
   │
   ▼
TUN

ある設定例では、生の TUN ポートに約 4160 バイト のヘッドルームを伝播させることができ、脆弱な算術演算でアンダーフローが発生します。


💥 セキュリティへの影響

この破損はカーネルのネットワークメモリ管理ロジックで発生します。

潜在的な影響には以下が含まれます:

  • カーネルメモリの破損
  • カーネルクラッシュ
  • サービス拒否
  • カーネル構造体の破損
  • カーネルコード実行の可能性
  • ローカル権限昇格

公開された開示情報では、この脆弱性は Linux のローカル root 権限昇格脆弱性群の一つとして報告されており、公開された PoC がサポート対象のターゲット上で非特権ローカルユーザーから root への実行を達成できると述べています。

悪用可能性は環境に依存し、関連する TUN/ネットワークデバイスの設定とサポート機能が必要です。


🧠 技術的フロー

             ATTACKER
                 │
                 ▼
       Oversized network headroom
                 │
                 ▼
        Virtual network device
                 │
                 ▼
             Open vSwitch
                 │
                 ▼
              TUN/TAP
                 │
                 ▼
          tun_get_user()
                 │
                 ▼
       SKB_MAX_HEAD(align)
                 │
                 ▼
          Integer underflow
                 │
                 ▼
          size_t wraparound
                 │
                 ▼
       Invalid skb->data offset
                 │
                 ▼
       Kernel memory corruption

🔎 脆弱なコードパス

重要なコンポーネントは以下のとおりです:

drivers/net/tun.c
        │
        ├── tun_set_headroom()
        │
        ├── tun_get_user()
        │
        └── tun_alloc_skb()

脆弱な関係は次のように単純化できます:

tun->align
    │
    ├── skb headroom
    │
    └── linear-data calculation

同じ過大な値を両方の計算で使用すると、要求されたヘッドルームと実際の skb ヘッドバジェットとの間に安全でない関係が生じます。


🧮 整数アンダーフロー

重要なセキュリティ特性は、概念的には次のように表すことができます:

usable_head < requested_headroom

その結果、次のようになります:

SKB_MAX_HEAD(align) < 0

その後に符号なし変換が続きます:

negative value
      ↓
size_t
      ↓
very large unsigned value

これは最終的に skb の割り当てやデータ配置に影響を与える可能性があります。

公式の説明では、結果の値が size_t 型の linear 変数に代入されるときにラップアラウンドすることが特に指摘されています。


🩹 アップストリームの修正

アップストリームの修正は次のとおりです:

447c9303942c439a117d9b76ce6d6e2116c38ee7

コミット:

net: tun: bound receive headroom

この修正は、TUN が保持するヘッドルームを、利用可能な 1 ページ分の skb ヘッド予算と有効な最大 16 ビット skb ヘッダーオフセットに対して制限する。また、raw TUN および TAP 処理に十分なリニアデータが利用可能であることを保証する。


🛡️ パッチの概念

修正前

User / network device
        │
        ▼
Large headroom
        │
        ▼
tun->align
        │
        ▼
Unsafe arithmetic
        │
        ▼
Potential OOB access

変更後

User / network device
        │
        ▼
Large headroom
        │
        ▼
Bounded headroom
        │
        ▼
Safe skb calculation
        │
        ▼
Normal packet processing

📊 脆弱版と修正版

セキュリティ特性脆弱版修正版
ヘッドルームが境界内に収まる❌✅
大きなヘッドルームが安全に処理される❌✅
アンダーフロー条件が防止される❌✅
skb データの配置が保護される❌✅
不正なネットワーク設定が安全に拒否される❌✅

🧪 研究環境

推奨されるラボトポロジー:

┌─────────────────────────────────────────┐
│             Linux VM / Host             │
│                                         │
│   ┌─────────┐     ┌──────────────┐     │
│   │ Netkit  │────▶│    VXLAN     │     │
│   └─────────┘     └──────┬───────┘     │
│                          │             │
│                   ┌──────▼───────┐     │
│                   │ Open vSwitch │     │
│                   └──────┬───────┘     │
│                          │             │
│                   ┌──────▼───────┐     │
│                   │    TUN/TAP   │     │
│                   └──────────────┘     │
│                                         │
└─────────────────────────────────────────┘

便利なツール:

uname -a
ip link
ip tuntap
bridge link
ovs-vsctl show
dmesg -w

カーネルデバッグの場合:

GDB
GDB + GEF
GDB + pwndbg
crash
objdump
readelf
pahole

🔎 カーネル検証

実行中のカーネルを確認します:

uname -r

カーネル設定を確認します:

grep CONFIG_TUN /boot/config-$(uname -r)

想定される設定:

CONFIG_TUN=y

または:

CONFIG_TUN=m

モジュールがロードされているか確認します:

lsmod | grep tun

🧪 PoCリサーチ

公開開示では、制御された検証のための専用のTUNderflow PoCリポジトリが提供されています。

安全なリサーチワークフローとしては、次のとおりです。

1. Build vulnerable kernel
2. Boot isolated VM
3. Configure TUN/TAP
4. Reproduce oversized headroom
5. Monitor kernel messages
6. Capture crash/corruption behavior
7. Apply upstream patch
8. Repeat test
9. Compare results

カーネルを監視します:

ツールをダウンロード