XMLRPC.iPIMethodsの脆弱性について

2005年6月17日、[ruby-core:05237]にて、XMLRPC.iPIMethodsの 脆弱性が報告されました。 この脆弱性により、遠隔の第三者によって任意のコマンドを 実行される危険性があります。

影響範囲

この脆弱性の影響を受けるプログラムは、XMLRPC.iPIMethodsを利用して XML-RPCサービスを提供しているプログラムです。

対策

CVSのHEADおよびruby_1_8ブランチでは、すでに問題は修正されています。

また、ruby-1.8.2の場合、以下のパッチを適用することにより、 問題を回避することができます。

  • www.ruby-lang.org/patches/ruby-1.8.2-xmlrpc-ipimethods-fix.diff
--- ruby-1.8.2/lib/xmlrpc/utils.rb.orig 2003-08-15 02:20:14.000000000 +0900
+++ ruby-1.8.2/lib/xmlrpc/utils.rb      2005-07-01 16:33:19.243521736 +0900
@@ -138,7 +138,7 @@
 
     def get_methods(obj, delim=".")
       prefix = @prefix + delim
-      obj.class.public_instance_methods.collect { |name|
+      obj.class.public_instance_methods(false).collect { |name|
         [prefix + name, obj.method(name).to_proc, nil, nil] 
       }
     end