MPlayer RTSP远程堆溢出漏洞
发布日期:2004-12-15
更新日期:2004-12-17
受影响系统:MPlayer MPlayer 1.0 pre5
描述:
BUGTRAQ ID:
11987
MPlayer是一款基于Linux的电影播放程序,支持多种媒体格式。
MPlayer包含的/libmpdemux/realrtsp/real.c在实现动态分配内存时存在问题,远程攻击者可以利用这个漏洞以进程权限执行任意指令。
问题代码如下:
rmff_header_t *real_setup_and_get_header(rtsp_t *rtsp_session, uint32_tbandwidth) { char *description=NULL; char *session_id=NULL; rmff_header_t *h; char *challenge1; char challenge2[64]; char checksum[34]; char *subscribe; char *buf = xbuffer_init(256); char *mrl=rtsp_get_mrl(rtsp_session); unsigned int size; int status;
[...] if (!rtsp_search_answers(rtsp_session,"Content-length")) printf("real: got no Content-length!\n"); else[!] size=atoi(rtsp_search_answers(rtsp_session,"Content-length"));[...] description=malloc(sizeof(char)*(size+1));
if( rtsp_read_data(rtsp_session, description, size) <= 0) { buf = xbuffer_free(buf); return NULL; } description[size]=0;[...]}
恶意服务器可以指定流的content-length为-1,由于只分配4字节而导致整数溢出,任意流数据拷贝到分配的内存时,可导致堆溢出,精心构建提交数据可能进程权限执行任意指令。
<*来源:iDEFENSE Security Advisory (
labs@idefense.com)
链接:
http://www.idefense.com/application/poi/display?id=166&type=vulnerabilities
*>
建议:
厂商补丁:
MPlayer
-------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www1.mplayerhq.hu/MPlayer/patches/rtsp_fix_20041215.diff浏览次数:2587
严重程度:0(网友投票)