导航菜单

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

 

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字段:

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

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

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

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

创建_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 字段值:

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

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次后触发漏洞,效果如下:

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

危害

使用该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

本文由安全客原创发布转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/204248

相关推荐

国外某工业SCADA软件漏洞复现

  概述 近年来随着网络安全形势的日渐严峻,国内外越来越重视工业信息安全的研究。“等保2.0”专门加入了工业控制系统扩展要求,呼之欲出的“关保”中,大多数涉及国计民生的关键信息基础设施也属于工业控制系统...

微软轻量级系统监控工具sysmon原理与实现完全分析——ProcessGuid的生成

  Sysmon的众多事件看起来都是独立存在的,但是它们确实都是由每个进程的产生的,而关联这些信息的东西正是ProC++essGuid,这个对进程是唯一的。如下图 Event 23 都会有个ProcessGuid 字段,今天的这篇文章...