通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 新闻类 >> 最新公告 >> 漏洞公告 >> 文章正文
Firefly媒体服务器Content-Length字段堆溢出漏洞
责任编辑:酷酷の鱼   更新日期:2008-4-24
 

受影响系统:
Firefly Media Server < 0.2.4.2

不受影响系统:
Firefly Media Server 0.2.4.2

描述:
Firefly是Roku SoundBridge和iTunes所使用的开源媒体服务器。

Firefly的src/webserver.c文件的ws_getpostvars()函数中存在堆溢出漏洞,如果远程攻击者向服务区发送了带有负数Content-Length值的POST请求的话就可以触发这个溢出,导致拒绝服务或执行任意指令。

以下是src/webserver.c文件中的漏洞代码:

   707  int ws_getpostvars(WS_CONNINFO *pwsc) {
   708      char *content_length;
   709      unsigned char *buffer;
   710      uint32_t length;
   711      uint32_t ms;
            ....
   715      content_length = ws_getarg(&pwsc->request_headers,"Content-Length");
            ....
   722      length=atoi(content_length);
   723      ws_dprintf(L_WS_DBG,"Thread %d: Post var length: %d\n",
   724              pwsc->threadno,length);
   725
   726      buffer=(unsigned char*)malloc(length+1);
            ....
   739      if(!io_read_timeout(pwsc->hclient, buffer, &length, &ms)) {
            ....
   757
   758      if(!ws_getgetvars(pwsc,(char*)buffer)) {
   759          /* assume error was set already */
   760          free(buffer);
   761          ws_dprintf(L_WS_LOG,"Could not parse get vars\n");
   762          return FALSE;
   763      }
   764
   765      free(buffer);

这里的相对变量为uint32_t类型的length,在715行content_length指向了用户在HTTP POST请求中所提供的Content-Length值,这个值在722行使用atoi转换为整数。由于长度类型为uint32_t,值-1会将length设置为UINT_MAX,然后使用这个长度值分配堆上空间,在malloc调用添加+ 1就会触发整数溢出。如果Content-Length: -1的话,传送给malloc的(UINT_MAX + 1)缓冲区大小为0,导致malloc分配可能的最小块,但不会失败。

在739行会对缓冲区执行定时的读取,src/io.c的io_read_timeout()函数结束对io_read的调用,将length字节数读到缓冲区,向length写回读字节的计数,因此可能出现堆溢出,导致在765行释放已破坏的缓冲区时服务器崩溃。

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

http://sourceforge.net/project/showfiles.php?group_id=98211&package_id=105189&release_id=593465

  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 企业网络组建与维护班正式开课
    普通文章 瑞星公司04月24日发布 每日计算机病毒及木马播报
    普通文章 用注册表映像劫持巧治病毒
    普通文章 SQL Server安全-加密术和SQL注入攻击
    普通文章 脱壳后软件减肥大法
    推荐文章 推荐:系统自带不起眼但很强杀毒工具
    普通文章 批处理打造自己的工具
    普通文章 用vbs写的短小精悍的字典生成器
    普通文章 攻击木马--远程控制软件自身的漏洞你注意了吗
    普通文章 MPlayer sdpplin_parse()函数 RTSP 整数溢出漏洞
    热门文章
    普通文章瑞星:“磁碟机”病毒余波未平
    普通文章Google让蜘蛛自动填表提交 以抓取更多网页
    普通文章赛门铁克:ActiveX浏览器插件漏洞最多
    普通文章瑞星:小心“安德夫木马下载器”
    普通文章国产软件占企业杀毒市场半壁江山
    普通文章Adobe Flash Player 9.0.124.0 修改多个安全漏洞
    普通文章Adobe Flash Player SWF 文件中的标签堆溢出漏洞
    普通文章Microsoft SharePoint 服务器源码 HTML 注入漏洞
    普通文章Cisco IOS的OSPF、Sup720或RSP720等拒绝服务漏洞
    普通文章Mysql5注射技巧总结
    精彩专题