BUGTRAQ ID: 27015
VLC Media Player是一款免费的媒体播放器。
VLC Media Player处理用户请求数据时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞通过诱使用户处理恶意数据控制用户系统。
---------------------------------------------------
A] 字幕处理缓冲区溢出
---------------------------------------------------
VLC在处理字幕时仅检查是否存在与加载视频同名的ssa文件及可能的字幕文件夹。用于处理MicroDvd、SSA和Vplayer字幕格式的函数中存在多个栈溢出漏洞,可能允许攻击者执行任意代码。modules\demux\subtitle.c文件中有漏洞的代码如下:
static int ParseMicroDvd( demux_t *p_demux, subtitle_t *p_subtitle )
...
char buffer_text[MAX_LINE + 1];
...
if( sscanf( s, "{%d}{}%[^\r\n]", &i_start, buffer_text ) == 2 ||
sscanf( s, "{%d}{%d}%[^\r\n]", &i_start, &i_stop, buffer_text ) == 3)
static int ParseSSA( demux_t *p_demux, subtitle_t *p_subtitle )
...
char buffer_text[ 10 * MAX_LINE];
char buffer_text2[ 10 * MAX_LINE];
...
if( sscanf( s,
"Dialogue: %[^,],%d:%d:%d.%d,%d:%d:%d.%d,%[^\r\n]",
buffer_text2,
&h1, &m1, &s1, &c1,
&h2, &m2, &s2, &c2,
buffer_text ) == 10 )
static int ParseVplayer( demux_t *p_demux, subtitle_t *p_subtitle )
...
char buffer_text[MAX_LINE + 1];
...
if( sscanf( p, "%d:%d:%d%[ :]%[^\r\n]", &h, &m, &s, &c, buffer_text ) == 5 )
-------------------------------------
B] Web接口格式串漏洞
-------------------------------------
可通过默认运行于8080端口的Web接口远程控制VLC。用于处理客户端所发送的Connection参数的指令缺少必要的格式参数便将内容传送给了httpd_MsgAdd函数,此外服务器在回复中发送回新形成的Connection字段,这有助于攻击者调整攻击,增加了成功攻击的概率。network\httpd.c文件中的有漏洞代码如下:
static int httpd_FileCallBack( httpd_callback_sys_t *p_sys, httpd_client_t *cl, \
httpd_message_t *answer, httpd_message_t *query )
...
psz_connection = httpd_MsgGet( &cl->query, "Connection" );
if( psz_connection != NULL )
{
httpd_MsgAdd( answer, "Connection", psz_connection );
}
VideoLAN VLC Media Player <= 0.8.6b
VideoLAN
--------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
<a href=http://trac.videolan.org/vlc/changeset/23839 target=_blank>http://trac.videolan.org/vlc/changeset/23839</a>
暂无评论