Linux Kernel の Intel 64 SYSRET 命令の取り扱いに起因する権限昇格の脆弱性(Scan Tech Report) | ScanNetSecurity
2024.03.28(木)

Linux Kernel の Intel 64 SYSRET 命令の取り扱いに起因する権限昇格の脆弱性(Scan Tech Report)

Linux Kernel には、ptrace システムコールを扱う際の SYSRET 命令の処理に起因して、CPU レジスタ値を不正に操作されてしまう脆弱性が存在します。

脆弱性と脅威 エクスプロイト
1.概要
Linux Kernel には、ptrace システムコールを扱う際の SYSRET 命令の処理に起因して、CPU レジスタ値を不正に操作されてしまう脆弱性が存在します。
システムにアクセス可能なローカルの悪意あるユーザに利用された場合、システムを不正に停止される、あるいは管理者権限を取得される可能性があります。
Intel 64 ビット CPU (Intel 64) アーキテクチャ上で Linux Kernel を利用する環境では、脆弱性を悪用される可能性があるため、影響を受けるバージョンの Linux Kernel を利用するユーザは可能な限り以下の対策を実施することを推奨します。


2.深刻度(CVSS)
6.9
http://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2014-4699&vector=%28AV:L/AC:M/Au:N/C:C/I:C/A:C%29


3.影響を受けるソフトウェア
Linux Kernel 2.6.x - 3.2.60/3.4.96/3.10.46/3.12.24/3.14.10/3.15.3

※1 影響を受けるバージョンの Linux Kernel が実装される Debian や Red Hat Enterprise Linux、Ubuntu などの Linux ディストリビューションもこの脆弱性の影響を受けます。


4.解説
Linux や UNIX などの OS に実装される ptrace は、プロセスの実行を監視または制御、レジスタの調査や変更などに利用されるシステムコールです。また、fork は、元となるプロセス (親プロセス) を複製し PID と PPID が異なるプロセス (子プロセス) を生成するシステムコールです。

Intel 64 アーキテクチャ上で動作する Linux Kernel には、ptrace システムコールを利用して他のプロセスをトレースする際の SYSRET 命令の処理に不備があります。
このため、ptrace および fork システムコールを介してプロセスを不正に操作することで、CPU レジスタ値を操作可能な脆弱性が存在します。

この脆弱性を利用することでシステムにアクセス可能なローカルの攻撃者は、二重フォールトを発生させ、システムをサービス不能状態にする可能性があります。

なお、Linux Kernel 3.10.x より前のバージョンの Kernel では、Interrupt Descriptor Table (IDT) を書き換えることが可能であったため、この脆弱性を悪用し、IDT 内の関数ポインタを書き換え、例外ハンドラを制御することで、権限昇格を行い任意のコマンドが実行可能なことが報告されています。


5.対策
以下の Web サイトより、Linux Kernel 3.2.61/3.4.97/3.10.47/3.12.25/3.14.11/3.15.4 以降を入手しアップデートする、あるいは修正パッチを入手し適用することで、この脆弱性を解消することが可能です。

Linux Kernel:
http://www.kernel.org/

linux.git ptrace,x86: force IRET path after a ptrace_stop()
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b9cd18de4db3c9ffa7e17b0dc0ca99ed5aa4d43a

また、Linux ディストリビューションにおいては、それぞれのベンダが提供するセキュリティアドバイザリを参考に、適切なパッケージを入手しアップデートすることで、この脆弱性を解消することが可能です。

・Debian 6/7
CVE-2014-4699
https://security-tracker.debian.org/tracker/CVE-2014-4699

・Red Hat Enterprise Linux 6/7
CVE-2014-4699
https://access.redhat.com/security/cve/CVE-2014-4699

・Ubuntu 12.04 LTS/13.10/14.04 LTS
CVE-2014-4699
http://people.canonical.com/~ubuntu-security/cve/2014/CVE-2014-4699.html


6.ソースコード
(Web非公開)

(執筆:株式会社ラック サイバー・グリッド研究所

※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。

Scan Tech Report
http://scan.netsecurity.ne.jp/archives/51916302.html
《株式会社ラック デジタルペンテスト部》

関連記事

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×