VLC Media Player sdpplin_parse() RTSP堆溢出漏洞
发布日期:2008-01-10
更新日期:2008-01-11
受影响系统:VideoLAN VLC Media Player <= 0.8.6b
描述:
BUGTRAQ ID:
27221
CVE(CAN) ID:
CVE-2008-0295,
CVE-2008-0296
VLC Media Player是一款免费的媒体播放器。
VLC在处理畸形格式的数据时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞控制用户系统。
VLC所使用的旧版Xine库在modules/access/rtsp/real_sdpplin.c文件中存在堆溢出漏洞:
sdpplin_t *sdpplin_parse(char *data) {
sdpplin_t *desc = malloc(sizeof(sdpplin_t));
sdpplin_stream_t *stream;
char *buf=malloc(3200);
char *decoded=malloc(3200);
...
while (data && *data) {
handled=0;
if (filter(data, "m=", &buf)) {
...
static int filter(const char *in, const char *filter, char **out) {
int flen=strlen(filter);
int len;
if (!in) return 0;
len = (strchr(in,'\n')) ? strchr(in,'\n')-in : strlen(in);
if (!strncmp(in,filter,flen)) {
if(in[flen]=='"') flen++;
if(in[len-1]==13) len--;
if(in[len-1]=='"') len--;
memcpy(*out, in+flen, len-flen+1);
(*out)[len-flen]=0;
return len-flen;
}
return 0;
}
在读取RTSP会话的SDP参数时buf和decoded缓冲区会被溢出。
此外Windows版本的播放器的libaccess_realrtsp插件在处理RTSP数据时也存在堆溢出漏洞。如果在连接时发送了大量字节的话,就额可以触发这个溢出。
<*来源:Luigi Auriemma (
aluigi@pivx.com)
链接:
http://secunia.com/advisories/28383/
http://aluigi.altervista.org/adv/vlcxhof-adv.txt
http://security.gentoo.org/glsa/glsa-200803-13.xml
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
m=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...more_than_3200_chars...AAAAA
或者
a=Title:buffer;AAAAAAAAAAAAAAAAAAAAAAAAA...more_than_6400_chars...AAAAA
建议:
厂商补丁:
Gentoo
------
Gentoo已经为此发布了一个安全公告(GLSA-200803-13)以及相应补丁:
GLSA-200803-13:VLC: Multiple vulnerabilities
链接:
http://security.gentoo.org/glsa/glsa-200803-13.xml
所有VLC用户都应升级到最新版本:
# emerge --sync
# emerge --ask --oneshot --verbose ">=media-video/vlc-0.8.6e"
浏览次数:3002
严重程度:0(网友投票)