CVE:CVE-2004-0832
CNNVD:CNNVD-200411-006
Squid（全称Squid Cache）是一套代理服务器和Web缓存服务器软件。该软件提供缓存万维网、过滤流量、代理上网等功能。
Squid代理ntlm_fetch_string()和ntlm_get_string()函数缺少正确的参数检查，远程攻击者可以利用这个漏洞对服务进行拒绝服务攻击。
问题存在于"lib/ntlmauth.c"文件中的"ntlm_fetch_string" 函数中，其中安全的缓冲区中获取字符串及其长度，返回返回到lstring结构中的"rv"：
l < 0 || l > MAX_FIELD_LENGTH || o + l > length || o == 0
如果上述的IF检查通过，执行如下代码：
rv.str = packet + o; <--- pointer to data
和
rv.l = l; <--- length of data
不过对int32_t offset "o"没有进行完整检查是否为负值。如果o = -1000000000或者任何负值，在"ntlm_check_auth"中后续的memcpy操作就会导致内存破坏。而造成产生拒绝服务。
solution:Upgrade squid squid to a higher version than 2.5.6,and avoid the version (,2.5.6]