细水 2008.01.11

漏洞播报

VLC Media Player sdpplin_parse() RTSP堆溢出漏洞

发布日期:2008-01-10
更新日期:2008-01-11

受影响系统:

VideoLAN VLC Media Player <= 0.8.6b

描述:


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数据时也存在堆溢出漏洞。如果在连接时发送了大量字节的话,就额可以触发这个溢出。

<*来源:Luigi Auriemma (aluigi@pivx.com
  
  链接:http://secunia.com/advisories/28383/
        http://aluigi.altervista.org/adv/vlcxhof-adv.txt
*>

测试方法:


警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

m=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA…more_than_3200_chars…AAAAA
或者
a=Title:buffer;AAAAAAAAAAAAAAAAAAAAAAAAA…more_than_6400_chars…AAAAA

建议:


厂商补丁:

VideoLAN
——–
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.videolan.org/


您可以随意转载,但必须在显著位置标明 原创链接 和本 版权声明

本文链接: http://www.mcafeefans.com/?p=2333

发表评论

电子邮件地址不会被公开。

:wink: :twisted: :roll: :mrgreen: 8) :-D :arrow: :-o more »

返回页首返回页尾