【安全漏洞】远程进入系统本地越权访问拒绝服务攻击嵌入恶意代码WEB数据接口其他类型

您现在的位置:首页 > 网络安全 > 安全漏洞 > 本地越权访问 VLC媒体播放器demux/tta.c TTA文件处理堆溢出漏洞

VLC媒体播放器demux/tta.c TTA文件处理堆溢出漏洞

来源: 作者: 日期:2008-08-16

【聚杰网本地越权访问】VLC媒体播放器demux/tta.c TTA文件处理堆溢出漏洞VLC媒体播放器demux/tta.c TTA文件处理堆溢出漏洞


发布日期:2008-08-16
更新日期:2008-08-19

受影响系统:
VideoLAN VLC Media Player 0.8.6i
描述:
BUGTRAQ  ID: 30718
CVE(CAN) ID: CVE-2008-3732

VLC Media Player是一款免费的媒体播放器。

VLC媒体播放器的modules/demux/tta.c文件的Open()函数中存在整数溢出漏洞:

    #define TTA_FRAMETIME 1.04489795918367346939
    .
    .
    .
    int         i_seektable_size = 0, i;
    .
    .
    .
    /* Read the metadata */
    es_format_Init( &fmt, AUDIO_ES, VLC_FOURCC( 'T', 'T', 'A', '1' ) );
    fmt.audio.i_channels = GetWLE( &p_header[6] );
    fmt.audio.i_bitspersample = GetWLE( &p_header[8] );
    fmt.audio.i_rate = GetDWLE( &p_header[10] );

    p_sys->i_datalength = GetDWLE( &p_header[14] );
    p_sys->i_framelength = TTA_FRAMETIME * fmt.audio.i_rate;

    p_sys->i_totalframes = p_sys->i_datalength / p_sys->i_framelength +
                       ((p_sys->i_datalength % p_sys->i_framelength) ? 1 : 0);
    p_sys->i_currentframe = 0;

    i_seektable_size = sizeof(uint32_t)*p_sys->i_totalframes;
    p_seektable = (uint8_t *)malloc( i_seektable_size );
    stream_Read( p_demux->s, p_seektable, i_seektable_size );
    p_sys->pi_seektable = (uint32_t *)malloc(i_seektable_size);

    for( i = 0; i < p_sys->i_totalframes; i++ )
         p_sys->pi_seektable[i] = GetDWLE( &p_seektable[i*4] );

如果用户受骗打开了特制的TTA文件的话,就可以触发堆溢出,导致执行任意指令。

<*来源:g_ (g_@orange-bat.com
  
  链接:http://secunia.com/advisories/31512/
        http://www.orange-bat.com/adv/2008/adv.08.16.txt
*>

测试方法:

警 告

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

http://milw0rm.com/sploits/2008-vlc.dos.tta

建议:
厂商补丁:

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

http://www.videolan.org/

上一篇:Openwsman多个远程安全漏洞

下一篇:下面没有链接了

评论   点击查看全部评论
您的评论参与,将为聚杰带来更大的动力!请不要吝啬!
快速回复
请使用文明语言让我们维护健康绿色网络环境!

匿名发表   验证码: