FreeBSD の仮想メモリシステムの実装に起因する権限昇格の脆弱性(Scan Tech Report)
FreeBSD には、仮想メモリシステムの実装に不備が存在するため mmap/ptraceシステムコールを介して権限昇格が可能な脆弱性が存在します。
脆弱性と脅威
エクスプロイト
FreeBSD には、仮想メモリシステムの実装に不備が存在するため mmap/ptraceシステムコールを介して権限昇格が可能な脆弱性が存在します。
システムにアクセス可能なローカルの悪意あるユーザに利用された場合、root権限を取得され、システムを完全に制御される可能性があります。
脆弱性を悪用された場合の影響度が高いため、影響を受けるバージョンの FreeBSD を利用するユーザは可能な限り以下の対策を実施することを推奨します。
2.深刻度(CVSS)
6.9
http://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2013-2171&vector=%28AV%3AL/AC%3AM/Au%3AN/C%3AC/I%3AC/A%3AC%29
3.影響を受けるソフトウェア ※
FreeBSD 9.0
FreeBSD 9.1
※1 Debian 7 の kfreebsd-9 パッケージも、この脆弱性の影響を受けることが報告されています。
4.解説
mmap は、ディスク上のファイルをメモリ領域にマッピングすることが可能 (メモリマップド I/O) なシステムコールであり、また ptrace は、実行中のプロセスのメモリ領域やレジスタを制御可能なシステムコールです。
FreeBSD には、メモリマッピング機能を提供する sys/vm/vm_map.c ※2 の vm_map_lookup() 関数において、ptrace などのプロセストレースを行うシステムコールを処理する際のパーミッションのチェックに不備があります。
このため、当該システムコールを介して、メモリマッピングされた /sbin/ping などの setuid が付与されたプログラムが利用するメモリ領域を上書き可能な脆弱性が存在します。
この脆弱性を利用することでシステムにアクセス可能なローカルの攻撃者は、root に権限昇格を行い、当該権限で任意のコマンドが実行可能となります。
※2 sys/vm/vm_map.c
http://svnweb.freebsd.org/base/head/sys/vm/vm_map.c?revision=250884
5.対策
以下の Web サイトを参考に、最新ブランチの FreeBSD 9.0/9.1-STABLE, releng/9.1, 9.1-RELEASE-p4 にアップデート、あるいはパッチ (mmap.patch)を入手し適用することで、この脆弱性を解消することが可能です。
※freebsd-update(8) ユーティリティを利用することでも、解消バージョンにアップデートすることが可能です。
FreeBSD-SA-13:06.mmap:
http://www.freebsd.org/security/advisories/FreeBSD-SA-13:06.mmap.asc
あるいは、以下のように管理者権限で sysctl コマンドを実行し、一般ユーザによる ptrace システムコールの実行を許可しないようにすることで、この脆弱性を回避することが可能です。
# sysctl security.bsd.unprivileged_proc_debug=0
6.ソースコード
(Web非公開)
(執筆:株式会社ラック サイバー脅威分析センター)
※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。
Scan Tech Report
http://scan.netsecurity.ne.jp/archives/51916302.html
《吉澤 亨史( Kouji Yoshizawa )》