当前位置:首页 > 安全预警 > 正文

Squid缓冲区溢出漏洞(CVE-2019-12527)预警

发布时间:2019-08-26 10:49:35,来源:中国信息通信研究院

      一、基本情况

Squid存在缓冲区溢出漏洞,CVE编号: CVE-2019-12527。攻击者可以在无需身份验证的情况下构造数据包利用此漏洞造成远程代码执行。

      二、漏洞描述

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

cachemgr.cgi 是 Squid 的缓存管理界面,用于展示代理进程的统计信息。Squid 使用 CacheManager::ParseHeaders() 函数来处理针对 cachemgr 的请求信息,如果请求投中包含Authorization认证信息,且类型为Basic的情况下,会调用存在漏洞的函数HttpHeader::getAuth()。

HttpHeader::getAuth()函数定义decodedAuthToken数组大小为8192字节,用于存放base64解码之后的凭证。使用函数base64_decode_update进行解码,如果解码的结果超过 8192 字节,那么就会发生缓冲区溢出。

image.png

无需认证的远程攻击者可以通过向目标服务器发送精心设计的HTTP请求来利用此漏洞。利用将导致攻击者获得代码执行权限,攻击不成功将导致服务器进程异常终止。

当Squid用作FTP代理并且请求的uri以FTP开头的时候,也会调用漏洞函数HttpHeader::getAuth()。

      三、影响范围

Squid 4.0.23 -> 4.7

      四、处置建议

Squid 已确认受到影响并发布补丁,请尽快升级到最新版本 Squid 4.8。

对于不便更新的用户可以使用 --disable-auth-basic 重新编译 Squid,或者禁止访问缓存管理报告和使用FTP协议的代理:

acl FTP proto FTP

http_access deny FTP

http_access deny manager

      五、参考链接

https://www.thezdi.com/blog/2019/8/22/cve-2019-12527-code-execution-on-squid-proxy-through-a-heap-buffer-overflow

http://www.squid-cache.org/Advisories/SQUID-2019_5.txt