流浪者家园


标题: NASA BigView PNM文件处理栈溢出漏洞
  本主题由 ldsystem 于 2008-6-10 23:11 移动 
西布伦 (家园流浪者)
管理员
Rank: 12Rank: 12Rank: 12


管理员   爱心天使   宣传大使   活跃份子   风雨同舟   软件发布专家  
UID 6
精华 18
积分 21432
帖子 15817
威望 21432 威望值
家园币 35737 家元
现金 5118 元
存款 105781 元
阅读权限 200
注册 2005-12-28
来自 辽宁沈阳
状态 离线
 
发表于 2008-6-10 09:51  资料  个人空间  主页 短消息  加为好友  添加 西布伦 为MSN好友 通过MSN和 西布伦 交谈 QQ

NASA BigView PNM文件处理栈溢出漏洞

NASA BigView PNM文件处理栈溢出漏洞


受影响系统:
NASA BigView 1.8

描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 29517
CVE(CAN) ID: CVE-2008-2542

BigView是NASA开发的图形查看器,可在运行Linux的桌面PC上将图形拉伸和缩放到任意尺寸。

BigView在解析特制的PNM输入文件时存在栈溢出漏洞,攻击者可能利用此漏洞通过诱使用户处理恶意文件控制用户系统。

以下是Ppm/ppm.C文件中的漏洞代码。这里getline()函数从文件将数据读取到缓冲区:

/-----------

418 static void getline(int fin, char* lineBuf, int len)
419 {
420   bool done=false;
421   int index=0;
422   lineBuf[index]=' ';
423   while(! done){
424     lineBuf[index] = getOneChar(fin);
425     if( lineBuf[index]==10 ) {
426       lineBuf[index]=0;
427       done=true;
428     }
429     ++index;
430   }
431   lineBuf[index]=0;
432 }

- -----------/

函数要求了目标缓冲区的长度,但没有内部使用。在PPM::ppmHeader()函数中使用了上述函数来读取PPM文件的头:

/-----------

56  PPM::ppmHeader(string filename, PPM::Format* format,
57                 int* cpp, int* bpc,
58                 int* sizeX, int* sizeY,
59                 int* imageOffset)
60  {
61    std:stringstream err;
62    char magic[3],lineBuf[512],junk;
63    int res,max;
.
.
.
115   while( junk == '#' ){
116     getline(fin,lineBuf,512);
117     cout << "Comment:"<<lineBuf<<":"<<endl;
118     junk = getOneChar(fin);
119   }

- -----------/

栈上所分配的lineBuf缓冲区大小为512字节,如果PPM头中包含有大于512字节的行的话,就会触发栈溢出,导致拒绝服务或执行任意指令。

<*来源:Alfredo Ortega
  
  链接:http://marc.info/?l=bugtraq&m=121262246131665&w=2
        http://secunia.com/advisories/30546/
*>

测试方法:
--------------------------------------------------------------------------------

警 告

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

http://www.coresecurity.com/?action=item&id=2304

建议:
--------------------------------------------------------------------------------
厂商补丁:

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

http://opensource.arc.nasa.gov/project/bigview/





我因此自己勉励,对神,对人常存无亏的良心。
顶部


当前时区 GMT+8, 现在时间是 2008-11-24 04:54

赣ICP备06003683号

严禁任何人在本论坛发表与中华人民共和国法律相抵触的言论!

特别声明:本论坛的所有言论只代表发表者个人意见,与本论坛立场无关!

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.013345 second(s), 7 queries , Gzip enabled 我要啦免费统计

清除 Cookies - 联系我们 - 流浪者家园 - Archiver - WAP