Linux Kernel の compat_sys_recvmmsg() 関数の実装に起因する権限昇格の脆弱性(Scan Tech Report) | ScanNetSecurity
2024.03.29(金)

Linux Kernel の compat_sys_recvmmsg() 関数の実装に起因する権限昇格の脆弱性(Scan Tech Report)

Linux Kernel には、recvmmsg システムコールを取り扱う際の timeout パラメータ処理に起因して、権限昇格が可能な脆弱性が存在します。

脆弱性と脅威 エクスプロイト
1.概要
Linux Kernel には、recvmmsg システムコールを取り扱う際の timeout パラメータ処理に起因して、権限昇格が可能な脆弱性が存在します。
システムにアクセス可能なローカルの悪意あるユーザに利用された場合、root 権限を取得され、システムを完全に制御される可能性があります。
Linux Kernel で x32 ABI 機能 (CONFIG_X86_X32) を有効にする環境では、脆弱性を悪用される可能性があるため、影響を受けるバージョンの Linux Kernel を利用するユーザは可能な限り以下の対策を実施することを推奨します。


2.深刻度(CVSS)
6.9
http://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2014-0038&vector=%28AV%3AL/AC%3AM/Au%3AN/C%3AC/I%3AC/A%3AC%29


3.影響を受けるソフトウェア
Linux Kernel 3.4.x - 3.4.78/3.10.28/3.11.10/3.12.9/3.13.1

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


4.解説
x32 ABI (Application Binary Interface)※2 は、64 ビット環境で 32 ビットのポインタが使える機能を提供するバイナリインタフェースであり、Linux Kernel 3.4 より当該機能がサポートされています。
openSUSE や Ubuntu などの Linux ディストリビューションでは、既定で CONFIG_X86_X32 が有効 (CONFIG_X86_X32=y) になっています。

この CONFIG_X86_X32 が有効な Linux Kernel には、compat_sys_recvmmsg()関数 (net/compat.c) において、ユーザ空間から渡される timeout パラメータを適切にチェックせず、パラメータ値をそのままカーネル空間へのポインタとして処理してしまう不備があります。
このため、recvmmsg システムコールを介して、特定の関数ポインタのアドレスを指定した timeout パラメータを渡すことで、カーネルメモリ領域に任意のデータを書き込むことが可能な問題が存在します。

この脆弱性を利用することでシステムにアクセス可能なローカルの攻撃者は、root に権限昇格を行い、当該権限で任意のコマンドが実行可能となります。

※2 x32-abi
https://sites.google.com/site/x32abi/


5.対策
以下の Web サイトを参考に Linux Kernel 3.4.79/3.10.29/3.12.10/3.13.2 以降を入手しアップデートする、あるいは修正パッチを入手し適用することで、この脆弱性を解消することが可能です。

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

Linux Kernel linux.git 2def2ef2ae5f3990aabdbe8a755911902707d268
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2def2ef2ae5f3990aabdbe8a755911902707d268

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

・openSUSE 12.3/13.1
openSUSE-SU-2014:0204-1
http://lists.opensuse.org/opensuse-security-announce/2014-02/msg00002.html
openSUSE-SU-2014:0205-1
http://lists.opensuse.org/opensuse-security-announce/2014-02/msg00003.html

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


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

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

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

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

関連記事

Scan PREMIUM 会員限定記事

もっと見る

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

カテゴリ別新着記事

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

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

×