[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[stalk:00290] Re: FTP サーバにセキュリティホール





しか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