Squid(全称Squid Cache)是一套代理服务器和Web缓存服务器软件。该软件提供缓存万维网、过滤流量、代理上网等功能。 Squid Web proxy在处理NTLM验证时缺少充分边界缓冲区检查,远程攻击者可以利用这个漏洞进行缓冲区溢出攻击,可能以进程权限在系统上执行任意指令。 Squid Web Proxy缓存支持Basic、Digest及NTLM验证,漏洞存在于NTLM验证的帮助函数中,helpers/ntlm_auth/SMB/libntlmssp.c中的ntlm_check_auth()函数: char *ntlm_check_auth(ntlm_authenticate * auth, int auth_length){ int rv; char pass[25] /*, encrypted_pass[40] */; char *domain = credentials; ... memcpy(pass, tmp.str, tmp.l); ... 函数由于对拷贝到\'\'pass\'\'变量的值缺少充分边界检查,过长的密码字段可造成缓冲区溢出及执行任意指令。memcpy()使用的\'\'tmp.str\'\'和\'\'tmp.l\'\'变量包含用户提供的数据。
Squid(全称Squid Cache)是一套代理服务器和Web缓存服务器软件。该软件提供缓存万维网、过滤流量、代理上网等功能。 Squid Web proxy在处理NTLM验证时缺少充分边界缓冲区检查,远程攻击者可以利用这个漏洞进行缓冲区溢出攻击,可能以进程权限在系统上执行任意指令。 Squid Web Proxy缓存支持Basic、Digest及NTLM验证,漏洞存在于NTLM验证的帮助函数中,helpers/ntlm_auth/SMB/libntlmssp.c中的ntlm_check_auth()函数: char *ntlm_check_auth(ntlm_authenticate * auth, int auth_length){ int rv; char pass[25] /*, encrypted_pass[40] */; char *domain = credentials; ... memcpy(pass, tmp.str, tmp.l); ... 函数由于对拷贝到\'\'pass\'\'变量的值缺少充分边界检查,过长的密码字段可造成缓冲区溢出及执行任意指令。memcpy()使用的\'\'tmp.str\'\'和\'\'tmp.l\'\'变量包含用户提供的数据。