安全研究

安全漏洞
MPlayer bitmap解析远程堆溢出漏洞

发布日期:2004-12-15
更新日期:2004-12-17

受影响系统:
MPlayer MPlayer 1.0 pre5
描述:
BUGTRAQ  ID: 11987

MPlayer是一款基于Linux的电影播放程序,支持多种媒体格式。

MPlayer包含的/libmpdemux/demux_bmp.c中的demux_open_bmp()函数缺少充分的边界缓冲区检查,远程攻击者可以利用这个漏洞以进程权限执行任意指令。

问题存在于/libmpdemux/demux_bmp.c中的demux_open_bmp()函数,如果构建一个特殊的文件,指定超大长度值给"biClrUsed"字段,当mplayer解析时,stream_read()可触发堆溢出,代码如下:

demuxer_t* demux_open_bmp(demuxer_t* demuxer){    sh_video_t *sh_video = NULL;    unsigned int filesize;    unsigned int data_offset;    bmp_image_t *bmp_image;    ...    sh_video->bih->biClrUsed = stream_read_dword_le(demuxer->stream);    sh_video->bih->biClrImportant = stream_read_dword_le(demuxer->stream);    // fetch the palette[!]  stream_read(demuxer->stream, (unsigned char *)(sh_video->bih) + 40,    sh_video->bih->biClrUsed * 4);    ...

精心构建文件数据可能以进程权限执行任意指令。

<*来源:iDEFENSE Security Advisory (labs@idefense.com
  
  链接:http://www.idefense.com/application/poi/display?id=168&type=vulnerabilities
*>

建议:
厂商补丁:

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

http://www1.mplayerhq.hu/MPlayer/patches/bmp_fix_20041215.diff

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