
DirtyAH6
CVE-2026-80844 は、IPv6 Authentication Header (AH6) / XFRM サブシステムに影響を与える Linux カーネルの脆弱性です。
この脆弱性は、IPv6 Routing Header の segments_left フィールドの検証が不十分であることが原因で発生し、境界外メモリ操作およびカーネルメモリ破壊を引き起こす可能性があります。
このリポジトリは、許可されたセキュリティ研究、脆弱性分析、CTF、および防御的テストのみを目的としています。
所有していないシステム、または明示的なテスト許可を得ていないシステムに対してこの研究を使用しないでください。
この脆弱性は IPv6 AH6 処理パスに存在します。
影響を受けるコードは、以下を通じてルーティングヘッダの操作を実行します:
net/ipv6/ah6.c
具体的には、脆弱なロジックは以下を含みます:
ipv6_rearrange_rthdr()
この関数は、以下の関係を適切に検証できませんでした:
hdrlen
および:
segments_left
したがって、特別に細工された IPv6 パケットを送信できる攻撃者は、カーネルに期待されるルーティングヘッダの境界外のメモリを操作させることができます。
これは以下につながる可能性があります:
Malformed IPv6 packet
│
▼
AH6 / XFRM processing
│
▼
Invalid routing-header state
│
▼
Out-of-bounds memory operation
│
▼
Kernel memory corruption
│
▼
Potential privilege escalation
根本的な問題は、IPv6 Routing Header の segments_left 値の検証が不十分であることです。
概念的には、脆弱な状態は次のように表すことができます:
segments_left > available routing-header addresses
カーネルは、関連するアドレスデータを操作する前に、ルーティングヘッダによって要求されたセグメント数が実際のヘッダ長と一致することを保証する必要があります。
この検証がない場合、後続のメモリ操作が有効なバッファ境界を超えて動作する可能性があります。
悪用に成功すると、必要なローカル権限/環境を持つ攻撃者がカーネルメモリを破壊できる可能性があります。
潜在的な結果には以下が含まれます:
正確な悪用可能性は、カーネル設定、利用可能な名前空間/ケーパビリティ、およびその他の環境条件に依存します。
net/ipv6/ah6.c
関連する処理:
AH6
└── IPv6 Routing Header
└── ipv6_rearrange_rthdr()
問題のあるシナリオは、一貫性のないルーティングヘッダのメタデータを含みます。
例えば、概念的には:
hdrlen → describes a limited number of addresses
segments_left → claims more addresses than are available
この不一致は、カーネルがアドレスの再配置を実行する前に拒否されなければなりません。
アップストリームの修正では、カーネルが脆弱な操作を実行する前に、Routing Header の segments_left 値の検証が導入されています。
関連するアップストリームコミットは以下です:
7bad4bda74dc4713f398d3b7624ff05478e3a568
xfrm: ah6: validate routing header segments_left
セキュリティ修正は次のように要約できます:
Before:
Trust segments_left
↓
Rearrange addresses
↓
Potential OOB access
After:
Validate segments_left
↓
Reject malformed header
↓
Safe AH6 processing
影響を受けるバージョンは、アップストリームおよびベンダーのバックポート履歴に依存します。
ユーザーは、アップストリームのバージョン番号だけに頼るのではなく、ディストリビューションのセキュリティアドバイザリを確認する必要があります。
修正済みのアップストリーム安定版リリースの例には以下が含まれます:
実行中のカーネルを確認します:
uname -a
または:
uname -r
詳細なカーネル情報を確認します:
cat /proc/version
Debian/Kali ベースのシステムの場合:
apt-cache policy linux-image-amd64
RPM ベースのシステムの場合:
rpm -q kernel
ディストリビューションのカーネルは、アップストリームのバージョンを明示的に変更せずにセキュリティ修正をバックポートすることがよくあります。常にベンダーのアドバイザリ/変更履歴を確認してください。
主な緩和策は、セキュリティ修正を含むカーネルにアップグレードすることです。
Debian/Kali:
sudo apt update
sudo apt full-upgrade
その後再起動します:
sudo reboot
確認します:
uname -r
本番システムの場合、カーネル更新を適用する前に Linux ディストリビューションの公式セキュリティアドバイザリを参照してください。
推奨される分離環境:
Host
│
├── Kali Linux
│
└── Vulnerable Linux VM
│
├── Debug kernel
├── IPv6 enabled
├── AH6/XFRM support
└── Kernel symbols
便利なデバッグツール:
gdb
gef
pwndbg
crash
dmesg
pahole
objdump
readelf
カーネルデバッグ:
sudo dmesg -w
カーネルシンボルを検査します:
cat /proc/kallsyms
CVE-2026-80844-DirtyAH6/
│
├── README.md
│
├── exploit/
│ ├── poc.c
│ └── Makefile
│
├── analysis/
│ ├── vulnerability.md
│ ├── root-cause.md
│ └── patch-analysis.md
│
├── kernel/
│ ├── vulnerable.patch
│ └── fixed.patch
│
├── docs/
│ └── research-notes.md
│
├── screenshots/
│
└── LICENSE
PoC 資料は、分離された実験環境内でのみ実行する必要があります。
研究実装は、不正な IPv6 Routing Header 状態を実証し、結果として生じるカーネルの動作を観察することに焦点を当てています。
期待される研究ワークフロー:
Craft malformed IPv6 header
↓
Transmit inside isolated lab
↓
AH6/XFRM processing
↓
Observe kernel behavior
↓
Capture dmesg / crash information
↓
Compare vulnerable vs patched kernel
監視の例:
sudo dmesg -w
修正済みカーネルは、脆弱なメモリ操作に到達することなく、不正な入力を拒否するはずです。
この脆弱性は、カーネルネットワークパーサーが攻撃者から提供された長さやカウントのフィールドを決して信頼してはならない理由を示しています。
セキュリティ上重要なパースは、以下に従うべきです:
Input
↓
Bounds validation
↓
Relationship validation
↓
State validation
↓
Memory operation
以下ではなく:
Input
↓
Memory operation
↓
Validation
2 つのパケットメタデータフィールド間のわずかな不一致でさえ、カーネルレベルのメモリ安全性の脆弱性になる可能性があります。
7bad4bda74dc4713f398d3b7624ff05478e3a568xfrm: ah6: validate routing header segments_leftLinux Kernel Security Research
CVE-2026-80844 · IPv6 · AH6 · XFRM · LPE
Research • Analyze • Understand • Harden
| 項目 | 詳細 |
|---|
| CVE | CVE-2026-80844 |
| コードネーム | DirtyAH6 |
| コンポーネント | Linux Kernel |
| サブシステム | IPv6 / XFRM / AH6 |
| 脆弱性の種類 | ローカル権限昇格 |
| 攻撃ベクトル | ローカル |
| 攻撃の複雑さ | 低 |
| 必要な権限 | 低 |
| ユーザー操作 | なし |
| CVSS v3.1 | 7.8 — 高 |
| 影響を受けるコード | net/ipv6/ah6.c |
| ステータス | 修正済み |
| カーネルブランチ | 修正済みリリース |
|---|
| 5.10 | 5.10.270 |
| 5.15 | 5.15.221 |
| 6.1 | 6.1.188 |
| 6.6 | 6.6.157 |
| 6.12 | 6.12.109 |
| 6.18 | 6.18.50 |
| 7.2 | 7.2.4 |
| 動作 | 脆弱なカーネル | 修正済みカーネル |
|---|
不正な segments_left | 検証が不十分 | 検証済み |
| ルーティングヘッダ処理 | 継続する可能性あり | 無効な場合は拒否 |
| 境界外メモリ操作 | 到達可能な可能性あり | 防止 |
| カーネル破壊 | 可能性あり | 緩和済み |
| 権限昇格 | 可能性あり | 緩和済み |