[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[stalk:00290] Re: FTP サーバにセキュリティホール
- To: <security-talk@xxxxxxxxxxxxxxxxxxxx>
- Subject: [stalk:00290] Re: FTP サーバにセキュリティホール
- From: Shikap <shikap@xxxxxxxxxxxx>
- Date: Wed, 11 Apr 2001 15:31:27 +0900
しかPです。
on 01.4.11 2:51 PM, Koga Youichirou at y-koga@xxxxxxxxxxxxxxxx wrote:
> 世の中には glob() をどこかからぱくってきて使っているものがあります。
>
> wu-ftpd では、INTERNAL_LS を定義している場合は glob() を使用しています
> し、そうでない場合は ls に渡す引数は C shell 由来の glob() を使って展
> 開しているっポイです (コメントを見る限り)。
うぅんと。
つまり、wu-ftpdは、内部に(どっかからぱちってきた)glob()を持っていて、
INTERNAL_LSが定義されている場合、内部のものを使い、未定義の場合は、
「C-Shell由来の」glob()を使う、ってことでしょうか?
#まぁ、それはソースを読むことにしよう、ってもしかして相当な数のコードを
#見なくちゃ状態になるのかしらん。
> もともとの COVERT Labs Security Advisory によると、
>
>> Implementations based off of the c-shell globbing code contain a
>> buffer overflow that can be triggered by supplying a pattern string
>> such that a set of brackets {} is followed by a string that is longer
>> than the length reserved for the stack based buffer defined in
>> execbrc(). This could be exploited by utilizing a code path in the
>> FTP daemon that fed the expanded output of one globbed pathname into
>> a second call to glob().
>>
>> BSD implementations of glob() contain four exploitable buffer
>> overflows. The first buffer overflow occurs in the static utility
>> function g_opendir(), which copies the provided pathname onto the
>> stack. This is performed using the function g_Ctoc, which converts a
>> 16-bit character string to an 8-bit character string, but otherwise
>> works like strcpy. Similar overflows occur in g_lstat(), and
>> g_stat(). A fourth overflow, one that affects the stack based buffer
>> reserved in glob0, is the result of the behavior of the mutually
>> recursive functions glob2() and glob3().
>
> based *off* なので、分かっているのは BSD (4.4BSD でしょう) 由来の
> glob() に問題があって、C shell 由来ならば大丈夫ということなのだと
> 思っています。
今までの話を組み合わせると、(wu-ftpdの場合は)
INTERNAL_LSを定義して「ない」場合、C-shell由来のglob()を使うため、
大丈夫だが、INTERNAL_LSが定義されていて、なおかつぱちってきたglob()が
BSD由来(など?)の場合、問題になる、という事になるのですが(私の頭では)。
#てことは大抵のLinux dist.のwu-ftpdではINTERNAL_LSを定義していない?
#違ってたらどんどん突っ込んでください。
しかし、
> #「C shell 由来でない実装」って、そういう書き方してほしくないなぁ。
つーか、実装違いのglob()がいっぱいで訳わかんないです。:-(
いったいいくつの「hoge由来のglob()」があるんでしょうか。
奥深し、Cの関数。(--;;
--
============================
鹿田 幸治 Koji.Shikata
E-Mail:koji.shikata@xxxxxxxxxxxx
:shikap@xxxxxxxxxxxx
snortパッチ公開中:http://www.yk.rim.or.jp/‾shikap/patch/
============================
--
- このメイリングリストに関する質問・問い合せ等は
- <security-talk@xxxxxxxxxx>までお知らせください
--
------------------------------------------------------------------------
◆桜も良いけど爽やか季節♪ 〜お出かけどこ行く?!
http://www.infoseek.co.jp/Playspot?pg=playspot_top.html&svx=971122