查看原文
其他

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

Foy 代码卫士 2022-05-23
 聚焦源代码安全,网罗国内外最新资讯!


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


1

漏洞简介


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

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


2

漏洞分析


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


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

创建_digest_nonce_h(会生成一个固定随机字符串凭证发送给用户)实例时references1,每个request 请求references字段会加一。request结束后references会减一。因为request请求到结束的时间较短,需要大量的并发数量的累加references导致触发漏洞。
Squid digest 认证配置:
auth_param digest program /usr/local/squid/bin/digest_file_auth -c /usr/local/squid/digest.passwdauth_param digest children 5auth_param digest realm testrealmauth_param digest nonce_garbage_interval 5 minutesauth_param digest nonce_max_duration 30 minutesauth_param digest nonce_max_count 50acl test proxy_auth REQUIREDhttp_access allow  test

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

 
2.通过nonce字段值,短时间高并发的发送报文
CONNECTtest.com:443 HTTP/1.1Host:test.com:443Proxy-Connection:keep-aliveUser-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100Safari/537.36Proxy-Authorization:Digest username="11111", realm="33333",nonce="dcea472040e3be38250541e9a1f6b768",uri="browser.gwdang.com:443", response="b12b53054f24f91c4b15cf873f22e298",qop=auth, nc=00000001, cnonce="70c18c47cce02533"

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

 

3

危害


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

4

参考引用


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
 


推荐阅读

【漏洞预警】Squid缓冲区溢出及拒绝服务漏洞安全预警通告

CVE-2020-0688 Exchange 远程代码执行分析

CVE-2020-0601漏洞详细分析




题图:Pixabay License


转载请注明“转自奇安信代码卫士 www.codesafe.cn”。


奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

    点个 “在看” ,加油鸭~

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存