Juniper SSL-VPN客户端ActiveX控件远程溢出漏洞
发布日期:2006-04-26
更新日期:2006-04-26
受影响系统:Juniper Networks IVE OS 1.x - 5.x
不受影响系统:Juniper Networks IVE OS 5.3 r2.1
Juniper Networks IVE OS 5.2 r4.1
Juniper Networks IVE OS 5.1 r8
Juniper Networks IVE OS 5.0 r6.1
Juniper Networks IVE OS 4.2 r8.1
描述:
BUGTRAQ ID:
17712
Juniper的SSL VPN系列产品可为用户提供安全的远程接入服务。
Juniper的SSL-VPN客户端ActiveX控件中存在远程溢出漏洞,远程攻击者可能利用此漏洞在客户机器上执行任意指令。
JuniperSetupDLL.dll是从JuniperSetup.ocx ActiveX控件加载的。如果在ProductName参数中指定了如下的超长字符串的话,就会在JuniperSetupDLL.dll函数中触发栈溢出:
--- object classid="clsid:E5F5D008-DD2C-4D32-977D-1A0ADF03058B" id=NeoterisSetup codebase="path_to_JuniperSetup.cab#version=1,0,0,3">
.....
---PARAM NAME="ProductName" VALUE="AAAAAAA (long 'A')">
.....
script language=javascript
NeoterisSetup.startSession();
end script
有漏洞的函数如下:
.text:04F15783 ; int __stdcall sub_4F15783_ilvdlp(char *szProductName,LPCSTR lpValueName,LPBYTE lpData,LPDWORD lpcbData)
.text:04F15783 sub_4F15783_ilvdlp proc near
.text:04F15783
.text:04F15783 SubKey = byte ptr -10Ch
.text:04F15783 Type = dword ptr -8
.text:04F15783 hKey = dword ptr -4
...
.text:04F157BF lea eax, [ebp+SubKey]
.text:04F157C5 push offset szUninstallRegistryKey
.text:04F157CA push eax
.text:04F157CB call strcpy
.text:04F157D0 push [ebp+szProductName]
.text:04F157D3 lea eax, [ebp+SubKey]
.text:04F157D9 push eax
.text:04F157DA call strcat
.data:04F1EA10 ; char szUninstallRegistryKey[]
.data:04F1EA10 szUninstallRegistryKey db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\',0
这个函数的第一个参数(szProductName)是用于创建卸载注册表项的产品名。ProductName参数的值字段传送给szProductName,未经任何边界检查便使用strcat()函数拷贝到了本地缓冲区SubKey。因此,如果能够传送特制的ProductName参数的话,就可以覆盖栈中的返回地址并执行任意代码。
<*来源:Yuji Ukai
链接:
http://juniper.net/support/security/alerts/PSN-2006-03-013.txt
http://www.eeye.com/html/research/advisories/AD20060424.html
*>
建议:
厂商补丁:
Juniper Networks
----------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.juniper.net/浏览次数:4583
严重程度:0(网友投票)