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

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



Shikap <shikap@xxxxxxxxxxxx>:
> BSDのアドバイザリの内容などから単純に考えると、
> 「問題のあるglob()を使っているプログラムは影響を受けかねないけど、
>  今のところ発覚しているのはftpdだけのようだ」
> と言うことになるのでしょうか?
> でもってLinuxが使っているlibc(glibc)のglob()はまともだ、っていうのが
> 何となく正解に近そうな。

世の中には glob() をどこかからぱくってきて使っているものがあります。

wu-ftpd では、INTERNAL_LS を定義している場合は glob() を使用しています
し、そうでない場合は 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 由来ならば大丈夫ということなのだと
思っています。
----
こがよういちろう
#「C shell 由来でない実装」って、そういう書き方してほしくないなぁ。
--
- このメイリングリストに関する質問・問い合せ等は
- <security-talk@xxxxxxxxxx>までお知らせください
--
------------------------------------------------------------------------
    ◆桜も良いけど爽やか季節♪ 〜お出かけどこ行く?!
 http://www.infoseek.co.jp/Playspot?pg=playspot_top.html&svx=971122