CVE-2019-12526:Squid缓冲区溢出漏洞预警
2019-11-07 16:05

报告编号:B6-2019-110701

报告来源:360-CERT

报告作者:360-CERT

更新日期:2019-11-07

0x00 漏洞背景

Squid 是一款受欢迎的开源代理服务器和缓存应用,支持HTTP、HTTPS、FTP等多种网络协议,使用广泛。

2019年11月5日,Squid官方公开了一个缓冲区溢出漏洞信息,远程攻击者可通过向目标服务器发送精心构造的HTTP请求利用此漏洞,可能导致远程代码执行,漏洞编号为CVE-2019-12526。

360CERT建议使用Squid的用户及时安装最新补丁,以免遭受黑客攻击。

0x01 影响版本

Squid 2.x版本不受影响

影响Squid 3.x 至 3.5.28 版本(包括3.5.28)

影响Squid-4.x 至 4.8 版本(包括4.8)

0x02 漏洞描述

漏洞函数在于/src/urn.cc:urnHandleReply()

urnHandleReply() 函数在从缓冲区复制entry过程中可能被调用多次,所以每次使用的缓冲区长度应该是进行相应更新,修复漏洞前,tempBuffer.length始终赋值为URN_REQBUF_SZ。

enter description here

显然此时传入的copyRequest.offset + copyRequest.length > URN_REQBUF_SZ,所以由于Squid在处理URN过程中不正确的缓冲区管理,可能造成缓冲区溢出。

enter description here

因此修复补丁将tempBuffer.length赋值为URN_REQBUF_SZ - urnState->reqofs,为上一次调用剩余的缓冲区长度。

0x03 修复建议

(1)Squid官方已在Squid 4.9版本中修复此漏洞,用户可更新至该版本

(2)Squid 4.x版本可以更新漏洞修复补丁:

http://www.squid-cache.org/Versions/v4/changesets/squid-4-7aa0184a720fd216191474e079f4fe87de7c4f5a.patch

(3)禁用urn:

acl URN proto URN

http_access deny URN

0x04 时间线

2019-09-15 Squid官方发布相应补丁

2019-11-05 Squid官方公布漏洞信息

2019-11-07 360CERT发布预警通告

0x05 参考链接

  1. http://www.squid-cache.org/Versions/v4/changesets/squid-4-7aa0184a720fd216191474e079f4fe87de7c4f5a.patch
  2. http://www.squid-cache.org/Advisories/SQUID-2019_7.txt

欢迎加入360-CERT团队,请投递简历到 caiyuguang[a_t]360.cn