安全研究

安全漏洞
Squid Proxy NTLM验证远程拒绝服务漏洞

发布日期:2004-09-02
更新日期:2004-09-06

受影响系统:
Squid Web Proxy Cache 3.0 PRE3
Squid Web Proxy Cache 3.0 PRE2
Squid Web Proxy Cache 3.0 PRE1
Squid Web Proxy Cache 2.5 STABLE6
Squid Web Proxy Cache 2.5 STABLE5
Squid Web Proxy Cache 2.5 STABLE4
Squid Web Proxy Cache 2.5 STABLE3
Squid Web Proxy Cache 2.4 STABLE7
Squid Web Proxy Cache 2.3 STABLE5
Squid Web Proxy Cache 2.1 PATCH2
Squid Web Proxy Cache 2.0 PATCH2
Squid Web Proxy Cache 2.4
    - Debian Linux 3.0
描述:
BUGTRAQ  ID: 11098
CVE(CAN) ID: CVE-2004-0832

Squid是一个高效的Web缓存及代理程序,Squid最初是为Unix平台开发的,现在也被移植到Linux和大多数的Unix类系统中,最新的Squid可以运行在Windows平台下。

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操作就会导致内存破坏。而造成产生拒绝服务。

<*来源:Marco Ortisi (marco.ortisi@flashcom.it
  
  链接:http://www.squid-cache.org/bugs/show_bug.cgi?id=1045
*>

建议:
厂商补丁:

Squid
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

Squid Patch squid-2.5.STABLE6-ntlm_fetch_string.patch
http://www1.uk.squid-cache.org/squid/Versions/v2/2.5/bugs/squid-2.5.STABLE6-ntlm_fetch_string.patch

浏览次数:3259
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障