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/