BUGTRAQ ID: 27221
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数据时也存在堆溢出漏洞。如果在连接时发送了大量字节的话,就额可以触发这个溢出。
VideoLAN VLC Media Player <= 0.8.6b
厂商补丁:
VideoLAN
--------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
<a href=http://www.videolan.org/ target=_blank>http://www.videolan.org/</a>
暂无评论