[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)
> のバグでしょうか?