受影响系统
Cisco User-Changeable Password 4.2 以下版本(不含 4.2)
不受影响系统
Cisco User-Changeable Password 4.2 版本及后续修复版本
漏洞描述
UCP(User-Changeable Password)应用为终端用户提供基于 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[] 缓冲区,随后将这些内容传递给另一个函数。该函数利用 strtok 截取第一个 . 之前的子串,并将其拷贝到一个 96 字节大小的 char[] 缓冲区。若第一个句点前的字符串长度超过 96 字节,则会导致缓冲区溢出,覆盖返回地址,使得攻击者可控制程序执行流程。
此外,向 CSUserCGI.exe 提交特制的恶意 URL 请求可触发跨站脚本攻击。简而言之,该接口既能被用于直接攻陷服务器,也可作为钓鱼或窃取用户凭证的跳板。
厂商补丁
思科已发布安全公告(cisco-sa-20080312-ucp),并提供了漏洞修复补丁。建议受影响的用户尽快升级至 4.2 版本或后续修复版本。
- 公告编号:cisco-sa-20080312-ucp
- 标题:Cisco Secure Access Control Server for Windows User-Changeable Password Vulnerabilities
- 下载链接:https://www.cisco.com/warp/public/707/cisco-sa-20080312-ucp.shtml
