Ruby DL和Fiddle模块已污染对象处理漏洞

发布日期:2013-05-15
更新日期:2013-05-19

受影响系统:
Ruby Ruby 2.0.x
 Ruby Ruby 1.9.x
不受影响系统:
Ruby Ruby 1.8.x
描述:
--------------------------------------------------------------------------------
CVE(CAN) ID: CVE-2013-2065
 
Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。
 
Ruby 1.9.x、2.0.x的DL和Fiddle模块在处理某些对象时,没有正确验证$SAFE层,可导致传递已污染的字符串到系统调用。
 
<*来源:vendor
 
  链接:http://secunia.com/advisories/53432/
        http://www.ruby-lang.org/en/news/2013/05/14/taint-bypass-dl-fiddle-cve-2013-2065/
 *>

建议:
--------------------------------------------------------------------------------
临时解决方法:
 
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下monkey patch以降低威胁:
 
class Fiddle::Function
  alias :old_call :call
  def call(*args)
    if $SAFE >= 1 && args.any? { |x| x.tainted? }
      raise SecurityError, "tainted parameter not allowed"
    end
    old_call(*args)
  end
 end
 
厂商补丁:
 
Ruby
 ----
 Ruby已经为此发布了一个安全公告(taint-bypass-dl-fiddle-cve-2013-2065)以及相应补丁:
 taint-bypass-dl-fiddle-cve-2013-2065:Object taint bypassing in DL and Fiddle in Ruby (CVE-2013-2065)
 链接:http://www.ruby-lang.org/en/news/2013/05/14/taint-bypass-dl-fiddle-cve-2013-2065/

相关推荐