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

[debian-users:47146] Re: libwrap&sshdの挙動について



平本です。

  ソースを持ってきて dbs-9 を dbs-10 を比べてみた所、changelog.Debian.gz
に記載されている

* Added support to match servers by port number. (Closes: #377154)

を実現していると思われる以下の関数が追加されているのですが(一部を
抜粋)、

|static int daemon_or_port_match(char *tok, struct request_info *request) {
|    unsigned int port, sin_port;
|    char junk;
|
|    if (!request->server->sin)
|    return (NO);
|
|    /* daemon name */
|    if (sscanf(tok, "%u%c", &port, &junk) != 1 && port < 65535)
|    return (string_match(tok, eval_daemon(request)));

tok の中身がデーモン名(「sshd」とか)の場合、sscanf() が 0 を返すの
で、次の port < 65535 が評価されますが、変数 port の初期値が設定さ
れてないので、port に入ってるゴミの値が 65535 以上の場合、

|    return (string_match(tok, eval_daemon(request)));

が実行されない。
→hosts.allow や hosts.deny にデーモン名で記載されている場合、その
  設定が無視される(場合がある)。
→その結果としてhosts.* に何も書いてないと認識される(場合がある)。
→何でも接続受け付けます状態になる(場合がある)。

と解釈したのですが、これで当ってますでしょうか? 当ってるようなら
(英語は苦手ですが)バグ登録しようと思います。

# C言語から縁遠くなってるので、当ってるかどうか自信がちょっと。


In subject: [debian-users:47143] Re: libwrap&sshdの挙動について
	debian-users@xxxxxxxxxxx (HIRAMOTO Kouji) said:

> ■libwrap0_7.6.dbs-9_amd64.deb (問題がないと思われる方)をインストール
> 
> 192.168.0.0/255.255.255.0 からのログインは可能。
> hosts.allow の当該行をコメントアウトするとログインできなくなる。
> 
> ■libwrap0_7.6.dbs-10_amd64.deb (問題があると思われる方)をインストール
> 
> 192.168.0.0/255.255.255.0 からのログインは可能。
> hosts.allow の当該行をコメントアウトしてもログイン可能。
> 
> 
>   やはり libwrap0_7.6.dbs-10 (あるいは libwrap0_7.6.dbs-10_amd64.deb)
> のバグでしょうか?