Cisco UCP CSuserCGI.exe缓冲溢出及跨站脚本漏洞

来源:岁月联盟 编辑:zhuzhu 时间:2008-03-15
Cisco UCP CSuserCGI.exe缓冲溢出及跨站脚本漏洞 受影响系统:
Cisco User-Changeable Password < 4.2

不受影响系统:
Cisco User-Changeable Password 4.2

描述:
UCP应用允许终端用户使用基于Web的工具更改Cisco Secure Access Control Server(ACS)的口令。

/securecgi-bin/CSUserCGI.exe CGI存在多个缓冲区溢出和跨站脚本漏洞,远程安全者可能利用此漏洞控制服务器。

CSuserCGI.exe的main()函数将使用strcmp()传送给程序的第一个命令行参数与所支持的参数列表做比较,如Logout、Main、ChangePass等。对于大多数参数,函数只是解析参数并以类似于Action=%s&Username=%s&OldPass=%s&NetPass=%s格式串的形式传送给wsprintf()调用。这些调用的目标缓冲区位于位于应用的.data段。

如果是Logout参数的情况,main()会传送第二个参数,通常其形式为1234.xyzab.c.username.,以及栈上的char[]缓冲区。main()将这些内容传送给一个函数,该函数使用strtok获得字符串直到第一个“.”字符,然后字符串被拷贝到了96字节大小的char[]缓冲区。如果第一个句号字符前的字符串超过了这个长度,就会覆盖缓冲区和返回地址。

此外如果向CSUserCGI.exe提交了恶意URL请求的话,还可以执行跨站脚本安全。

厂商补丁:
Cisco已经为此发布了一个安全公告(cisco-sa-20080312-ucp)以及相应补丁:
cisco-sa-20080312-ucp:Cisco Secure Access Control Server for Windows User-Changeable Password Vulnerabilities
链接:http://www.cisco.com/warp/public/707/cisco-sa-20080312-ucp.shtml