[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[harden-mac:0537] Re: Mac OS X USB Keyboard Root Access
- To: harden-mac@xxxxxxxxxx
- Subject: [harden-mac:0537] Re: Mac OS X USB Keyboard Root Access
- From: "Kogulé, Ryo" <aqua_dabbler@xxxxxxx>
- Date: Tue, 4 Nov 2003 12:51:50 +0900
古暮でございます。
全てを検証している時間はないので推測を交えますが,
On Nov 4, 2003, at 10:39, vm_converter wrote:
> ■Control+Cの時
> PID TT STAT TIME COMMAND
> 1 ?? Ss 0:00.02 /sbin/init
> 2 ?? Ss 0:00.01 /sbin/mach_init
> 5 ?? Ss 0:00.03 -sh (sh)
> 6 ?? R+ 0:00.00 ps ax
この様子から ^C に反応して sh に制御を渡しているのは init である事
が判ります。init が sh を起動して single user mode に移行する場合
は幾つかありますが,今回の場合は挙動をみる限り多分 SIGTERM を受け
取って single user mode に移行しているようです。
SIGTERM というのは kill(1) の使用時 signal を指定しない時に default
で送られる物で,通常 process の終了に使われます。init の SIGTERM
に対する挙動は shutdown(8) で multiuser mode から single user mode
に移行するのに使われたりしています。一方 ^C で送られる signal は通
常 SIGINT です。
これと ADB keyboard ではこの現象が再現しない事から,USB keyboard
driver が ^C で SIGTERM を送るようになっていたのではないかと推測出
来ます。実際 Darwin 6.6 と 7.0 の init の source code は,license
変更を除くと有意な差はありません。“内部的な開発のための機能”という
云い方もこの辺から出てきているんじゃないかと思います。
> initはクラッシュしてる訳じゃなくて、「-s」が付いてるか付いてないかの
> 差しかないんですね。
init は crash している訳ではなく,init としては正常に動作しているよ
うです。問題は起動時に keyboard から SIGTERM を渡している点のように
見えます。
この問題 Open Firmware Password を回避出来る点で脆弱性といっていい
と思いますが,遡って修正すべきかどうかについては微妙な気がします。
--[PR]------------------------------------------------------------------
____⊂^ヽ 【東急ハンズ新宿店から無料メルマガ配信中】 ∠ニつ__
(____ ヽ 人気商品のランキングや週間イベント情報、 / ____ )
(__ ) とっておきの商品情報など14誌を配信中 / __)
(__ / 読者だけのプレゼントもご用意しています ( __)
http://ad.freeml.com/cgi-bin/ad.cgi?id=cpsZK
------------------------------------------------------------------[PR]--
<GMO GROUP> Global Media Online www.gmo.jp