防御的研究、非武器化検証、および CVE-2016-5195 (Dirty COW) のパッチ分析。Dirty COW は Linux カーネルのコピーオンライト競合状態であり、ローカルユーザーが読み取り専用マッピングに関連付けられたデータを改ざんし、権限を昇格させる可能性があります。
| フィールド | 値 |
|---|---|
| コンポーネント | Linux カーネルメモリ管理 / get_user_pages() |
| 弱点 | CWE-362: 不適切な同期を伴う共有リソースの同時実行 |
| 深刻度 | 高、CVSS 3.1: 7.0 |
| ベクトル | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 攻撃の前提条件 | ローカルの低権限アクセス |
| 上流修正 | 19be0eaffa3ac7d8eb6784ad9bdbc7d67ed8e619 |
| 上流で初めて修正されたリリース | Linux 4.8.3; ディストリビューションのバックポートはさまざま |
Dirty COW は、Linux カーネルにおける強制書き込みとコピーオンライト (COW) マッピングの処理における競合状態です。ローカルユーザーは /proc/self/mem を介した書き込みに対してページの無効化を競合させることができます。影響を受けるカーネルでは、この競合により、名目上読み取り専用のプライベートマッピングに関連付けられたデータが、基盤となるファイルに書き戻される可能性があります。
公表されている影響は、攻撃者がこのプリミティブをセキュリティ上重要なファイルに適用できる場合のローカル権限昇格です。この脆弱性は 2016 年 10 月に実環境で悪用されました。このリポジトリはその昇格経路を自動化するものではありません。
デフォルトのハーネスは意図的に制約されています:
cc -std=c11 -Wall -Wextra -Wpedantic -Werror -O2 \
poc.c -o dirtycow-safe -pthread
ラボ専用のエクスプロイトプリミティブは別途ビルドできます:
cc -std=c11 -Wall -Wextra -Wpedantic -Werror -O2 \
exploit.c -o dirtycow-exploit -pthread
./dirtycow-safe
オプションの上限付き反復回数:
./dirtycow-safe --iterations 5000000
考えられる結果:
marker-observed: 使い捨て inode で脆弱な動作が観察されました。marker-not-observed: 決定的ではありません。競合が発生しないことは、カーネルが修正されていることを証明するものではありません。77: 必要な Linux /proc/self/mem インターフェースが利用できません。PoC の結果をパッチ適用状態の主要な確認手段として使用しないでください。実行中のディストリビューションのカーネルパッケージ勧告を確認し、再起動後にパッチ適用済みカーネルが有効であることを検証してください。
exploit.c は明示的なファイルと置換プレフィックスを受け取り、影響を受けるカーネル上で任意ファイル書き込みプリミティブを実証します。リテラル --i-understand による確認が必要であり、ペイロードと反復回数の上限が適用され、権限昇格ペイロードは構築されません。
選択したファイルは恒久的に変更される可能性があります。所有しているか、明示的にテストを許可された隔離された使い捨てラボでのみ使用してください。競合状態と状態遷移の完全な分析は ROOT_CAUSE.md にあります。
evidence/evidence.json は、公式の修正前および修正済み Linux リビジョンで観察されたソースシグネチャ、警告なしの PoC ビルド結果、および検証の安全性プロパティを記録します。
evidence/validation.log は簡潔な要約を提供します。キャプチャされた検証では競合は実行されませんでした。
ベンダー提供のカーネル更新をインストールし、パッチ適用済みカーネルで再起動してください。上流のバージョン文字列だけで曝露を判断しないでください: エンタープライズカーネルやディストリビューションカーネルは、上流のバージョン番号を採用せずに修正をバックポートすることが一般的です。コンテナはホストカーネルを使用するため、対策はホストを対象とする必要があります。
正確な上流の変更については PATCH_ANALYSIS.md を、検証のガイダンスについては VULNERABILITY_REPORT.md を参照してください。
この資料は、所有しているシステム、または明示的にテストを許可されたシステムでのみ使用してください。
| パス | 目的 |
|---|
poc.c | リンク解除された一時 inode のみを使用する非武器化検証 |
exploit.c | 許可された使い捨てラボ向けの任意ファイル書き込みプリミティブ |
ROOT_CAUSE.md | 脆弱な状態遷移と競合状態の詳細な分析 |
VULNERABILITY_REPORT.md | 前提条件、根本原因、影響、および対策 |
PATCH_ANALYSIS.md | 上流の FOLL_COW 修正の行レベル分析 |
evidence/ | 構造化された検証出力と解釈メモ |