安全研究
安全漏洞
RealNetworks RealPlayer .smil文件处理缓冲区溢出漏洞
发布日期:2005-03-01
更新日期:2005-03-02
受影响系统:
Real Networks RealPlayer Enterprise for Windows描述:
Real Networks RealPlayer 8 for Windows
Real Networks RealPlayer 10.5 for Windows
Real Networks RealPlayer 10 for Windows
Real Networks RealPlayer 10 for Mac
Real Networks RealPlayer 10 for Linux
Real Networks RealOne Player V2 for Windows
Real Networks RealOne Player V1 for Windows
Real Networks RealOne Player for Mac
Real Networks Helix Player for Linux
BUGTRAQ ID: 12698
CVE(CAN) ID: CVE-2005-0455
RealPlayer是RealNetworks Inc开发的应用程序,可以播放各种媒体格式。
RealPlayer在处理 .smil 文件的某些属性字段时存在缓冲区溢出漏洞,攻击者通过精心构造 .smil 文件使RealPlayer执行任意指令。
漏洞的起因是拷贝操作中未受限制的字符串。漏洞代码如下:
datatype/smil/renderer/smil1/smlparse.cpp
CSmil1Parser::testAttributeFailed(SMIL1Node* pNode)
line 2878
***
if(HXR_OK == rc)
{
UINT32 ulScreenHeight = 0;
UINT32 ulScreenWidth = 0;
const char* pScreenSize = (const char*)pBuf->GetBuffer();
// format is screen-height "X" screen-width
char tmp[256]; /* Flawfinder: ignore */
strcpy(tmp, pScreenSize); /* Flawfinder: ignore */
***
pBuf对象的数据指针(也就是GetBuffer内部所使用的指针)指向了用户提供的smil文件的screen-size属性。这就允许以用户提供的数据覆盖固定的栈缓冲区。攻击者可以利用这个栈覆盖控制保存的返回地址或结构化异常处理器,允许执行任意代码。
如果要触发这个漏洞,攻击者必需一个有效的.smil文件,并在合适的部分添加以下内容:
<text src="1024_768.en.txt" region="size" system-screen-size="LONGSTRINGX768">
请注意"LONGSTRING"必须大于256字节才能导致栈破坏。
<*来源:iDEFENSE Security Advisory (labs@idefense.com)
Mark Litchfield (mark@ngssoftware.com)
链接:http://www.idefense.com/application/poi/display?id=209&type=vulnerabilities&flashstatus=false
http://service.real.com/help/faq/security/050224_player/EN/
*>
建议:
厂商补丁:
Real Networks
-------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
Windows 播放器:
RealOne Player v2 (6.0.11.853-872), RealPlayer 10和RealPlayer 10.5可点击如下地址:
http://service.real.com/help/faq/security/050224_player/EN/win32patch.rnx
或采用如下步骤下载更新以解决此问题:
在工具菜单中选择检查更新。
选择选择"Security Update - March 2005"组件
单击安装以下载并安装更新。
RealOne Player(仅英文版)和RealOne Player V2 (6.0.11.818 - 840)需要完全下载来修复此问题,点击如下地址 :
http://service.real.com/help/faq/security/050224_player/EN/player.rnx
或采用如下步骤更新:
在工具菜单中选择检查更新。
选择“内置Harmony技术的RealPlayer 10.5”组件旁的复选框。
单击安装以下载并安装更新。
然后,点击安全进行下载和安装。
RealPlayer 8 (version 6.0.9.584)点击如下地址:
http://service.real.com/help/faq/security/050224_player/EN/player.rnx
或者使用如下方法进行升级:
点击帮助菜单。
选择更新。
选择“内置Harmony技术的RealPlayer 10.5”组件旁的复选框。
点击安装进行下载和更新。
RealPlayer Enterprise解决方法:
请从http://service.real.com/help/faq/security/security022405.html 下载补丁程序。
RealOne Player的Mac OS X版本:
RealPlayer 10 for Mac OS X可采用如下方法进行更新:
进行RealPlayer菜单。
选择更新。
选择"Security Update - March 2005" 组件。
选择安装和升级。
Linux播放器:
请从http://www.real.com/linux 获得新版RealPlayer 10的Linux版本。
请从http://player.helixcommunity.org/downloads/ 获得新版Helix Player的Linux版本
浏览次数:7941
严重程度:0(网友投票)
绿盟科技给您安全的保障