CVE-2020-11945 Squid未授权整数溢出分析

admin 2023-11-30 02:35:52 AnQuanKeInfo 来源:ZONE.CI 全球网 0 阅读模式

 

Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid 的用途很多,可以作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,也可以为一组人共享网络资源而缓存万维网、域名系统和其他网络搜索,以及通过过滤流量提高网络安全,在局域网通过代理上网等。

漏洞简介

Squid的HTTP Digest认证在未授权的并且高并发的情况下存在整数溢出漏洞风险,随后导致UAF。Squid 的 HTTPDigest 认证是非默认开启。

漏洞基本信息

公告:

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11945

作者:synacktiv

影响版本:

Squid 5.x -> 5.0.1

Squid 2.x -> 2.7.STABLE9

Squid 3.x -> 3.5.28

Squid 4.x -> 4.10

修复版本

Squid 4.11 and 5.0.2

注:本篇文章仅在上述条件下调试分析

 

漏洞分析

通过 patch 分析得出,溢出的是references字段:

references溢出后会导致 _digest_nonce_h 数据结构提前释放,导致UAF:

创建_digest_nonce_h(会生成一个固定随机字符串凭证发送给用户)实例时references为1,每个request 请求references字段会加一。request结束后references会减一。因为request请求到结束的时间较短,需要大量的并发数量的累加references导致触发漏洞。

Squid digest 认证配置:

auth_paramdigest program /usr/local/squid/bin/digest_file_auth -c /usr/local/squid/digest.passwd
auth_paramdigest children 5
auth_paramdigest realm testrealm
auth_paramdigest nonce_garbage_interval 5 minutes
auth_paramdigest nonce_max_duration 30 minutes
auth_paramdigest nonce_max_count 50
acltest proxy_auth REQUIRED
http_access allow  test

1.首先获取一个服务器的 nonce 字段值:

2.通过nonce字段值,短时间高并发的发送报文

CONNECTtest.com:443 HTTP/1.1
Host:test.com:443
Proxy-Connection:keep-alive
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100Safari/537.36
Proxy-Authorization:Digest username="11111", realm="33333",nonce="dcea472040e3be38250541e9a1f6b768",uri="browser.gwdang.com:443", response="b12b53054f24f91c4b15cf873f22e298",qop=auth, nc=00000001, cnonce="70c18c47cce02533"

在实验中,单台虚拟机中访问可达700多次,而需要累计超过32767次后触发漏洞,效果如下:

危害

使用该Digest验证的Squid服务器,理论上容易遭受远程DOS攻击,配合其它漏洞可能导致信息泄露和远程代码执行,但是在实际验证中,触发整数溢出不太容易,实际危害不大。

参考引用

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11945

https://github.com/squid-cache/squid/commit/eeebf0f37a72a2de08348e85ae34b02c34e9a811?diff=unified

https://www.openwall.com/lists/oss-security/2020/04/23/2

weinxin
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论:0   参与:  0