Dirty PipeによりLinuxの権限昇格が容易に

「Dirty Pipe」と呼ばれるLinuxの重大な脆弱性により、最も権限の低いユーザーでさえ悪意ある操作を実行できる可能性がある。Ionosの研究者Max Kellermannが今週初めに新たな脆弱性を明らかにした。この名称は、2016年に発見され、OSのバージョンにかかわらずあらゆるAndroid Phoneで攻撃者がroot権限を取得できた「Dirty Cow」脆弱性を想起させるが、Dirty Pipeは前身よりさらに悪用しやすい可能性がある。[… ]

執筆者
Julien Maury
Julien Maury
Mar 9, 2022
4 minute read
eSecurity Planet のコンテンツおよび製品のおすすめは、編集上の独立性を保っています。パートナーへのリンクをクリックすると、当社が報酬を得る場合があります。 詳細を見る

「Dirty Pipe」と呼ばれるLinuxの重大な脆弱性により、最も権限の低いユーザーでさえ悪意ある操作を実行できる可能性がある。

Ionosの研究者Max Kellermannが明らかにした。新たな脆弱性を今週初めに明らかにしたのである。この名称は、2016年に発見され、OSのバージョンにかかわらずあらゆるAndroid Phoneで攻撃者がroot権限を取得できた「Dirty Cow」脆弱性を想起させるが、Dirty Pipeは前身よりさらに悪用しやすい可能性がある。

KellermannはLinuxカーネルのバグを悪用することに成功した。このバグにより、「nobody」アカウントのような最も権限の低いユーザーを含むあらゆるユーザーが、rootユーザーのアカウントにSSHキーを追加し、完全な権限でサーバーにリモートアクセスするといった悪意ある操作を実行できる。

あわせて読みたい:主要な脆弱性管理ツール

LinuxのNobodyアカウントとは

Unixシステムには従来、NFS(ネットワークファイルシステム)で特定の操作を行うための専用ユーザーとしてnobodyが用意されてきた。

この擬似ユーザーは最も権限の低いアカウントで、パスワードを持たず、文字どおりファイルを1つも所有しない。実際、基本原則であるPoLP(最小権限の原則)のゼロトラストというセキュリティ原則は、ユーザーが必要とする情報とリソースだけにアクセスできるようにすることを求めている。

最も権限の低いアカウントがroot権限を取得できる脆弱性は、Linuxのような広く普及したOSにとって重大な失態である。

Dirty Pipeの仕組み

この脆弱性に関するCommon Vulnerabilities and Exposures(CVE)レポートであるCVE-2022-0847では、攻撃者がこのバグをどのように悪用できるかを説明している。「Pipe」という用語は、Linuxカーネル内部の「パイプライン」と呼ばれるメカニズムを指す。

Kellermannは、攻撃者がキャッシュ内にある任意のファイルの内容を上書きできる可能性のある、カーネルコード内の未初期化変数を発見した。もちろん一定の条件はあるが、攻撃者に書き込み権限は必要なく、読み取りアクセスだけで十分だ。このバグはシステムバイナリやbtrfsファイルにも影響する。

実際、カーネルはキャッシュ内のページに対して恒久的に読み書きのアクセス権を持つ。カーネルは常に最大の権限で動作するため、このレベルでは検証が行われない。ハードウェアにアクセスできる、システムの中核部分なのである。

カーネルはフラグとパイプを使ってプロセス間でデータを受け渡す。KellermannはLinuxカーネルのセキュリティチーム向けに概念実証(下図)を作成し、パイプを作って任意のデータで満たした。これによりPIPE_BUF_FLAG_CAN_MERGEフラグが有効になり、最終的にキャッシュされたファイルページを上書きできた。

ただし、書き込みがページ境界を越えられないという制限があることにも気づいた。それでも、書き込み権限なしにファイルを変更することは可能で、その変更はシステム上のすべてのユーザーに影響を及ぼし得る。

Dirty Pipeでは、正規のプロセスが持つ権限なしにファイルへデータを書き込め、時間的な制約も一切ない。

kellermann poc

こちらも参照:オープンソースの主要なペネトレーションテストツール10選

Advertisement

攻撃者がDirty Pipeでできること

Dirty PipeはDirty Cowより悪用しやすく、rootレベルまで権限を昇格できるため、深刻度の高い欠陥である。ハッカーは、一般的なライブラリを改変したり、任意のコードを実行したりするなど、追加の作業に利用すると考えられる。

上書きは一時的にも恒久的にも可能で、攻撃者は本来不変であるはずのシステムのバイナリを変更できる。悪意あるアプリケーションは、ユーザーの同意なしに自身の権限を高いレベルまで引き上げられる可能性がある。

この脆弱性は、ラテラルムーブメント、任意コード実行、ウイルスの拡散にうってつけである。

このような低レベルの侵害は、特にゼロクリック攻撃にとって魅力的だ。「単純な」ファイル破損に関する最初のサポートチケットが発行されてから、最終的に一般公開されるまで、ほぼ1年が経過した。

dirty pipe timeline

Dirty Pipeの脆弱性を見つけて修正する方法

この重大なバグはLinuxで修正された。執筆時点で比較的新しいバージョンであるLinux 5.8でバグが導入されたため、幸いにも本番サーバーへの影響はそれほど多くないと期待される。

5.8版を実行しているユーザーは速やかに更新し、より新しいバージョンを実行しているユーザーも、5.16.11少なくとも最新の状態にしておく必要がある。欠陥のあるカーネルコードへの既知の緩和策は、更新以外に存在しない。

Googleは2月末に新しいカーネルコードでAndroidにパッチを適用したが、最新のPixel(このバグはGoogle Pixel 6で実証されている)やSamsung(Galaxy 2022など)を含むAndroidデバイスは影響を受ける。Androidエコシステムは、同じLinuxカーネルを基盤とするさまざまな代替システムが存在するなど、非常に分断されているため、多くのデバイスがこの脆弱性を抱えたまま動作している可能性がある。

Androidユーザーには、「設定」>「デバイス情報」>「Androidバージョン」でOSのバージョンを確認することを強く推奨する。

次に読む:最適なパッチ管理ソフトウェア

Julien Maury

eSecurity Planet contributor Julien Maury writes about penetration testing, code security, open source security and more. He is a backend developer, a mentor and a technical writer who enjoys sharing his knowledge and learning new concepts.

eSecurity Planet Logo

eSecurity Planet is a leading resource for IT professionals at large enterprises who are actively researching cybersecurity vendors and latest trends. eSecurity Planet focuses on providing instruction for how to approach common security challenges, as well as informational deep-dives about advanced cybersecurity topics.

TechnologyAdvice が所有・運営しています。 © 2026 TechnologyAdvice. 無断転載を禁じます

広告主に関する開示:このサイトに掲載されている製品の一部は、TechnologyAdvice が報酬を受け取っている企業のものです。この報酬は、製品がこのサイトのどこにどのように表示されるか(表示される順序など)に影響する場合があります。TechnologyAdvice は、市場で入手可能なすべての企業やすべての種類の製品を掲載しているわけではありません。