博客/工程

Grafana 8.2.3发布了中等严重的安全补丁:CVE-2021-41174 Grafana XSS

2021年11月3日4分钟

今天我们发布了Grafana 8.2.3。此补丁发布包括一个重要的安全修复,该问题会影响从8.0.0-beta1开始的所有Grafana版本。

Grafana云实例已经打了补丁,审计没有发现任何使用此攻击向量的情况。Grafana企业在禁止的情况下,向客户提供了更新的二进制文件。

Grafana XSS

总结

CVSS评分:6.9 CVSS:3.0 / AV: N /交流:H /公关:N / UI: R / S: C / C: L /我:H: N / E: U / RL: O / RC: R / CR: L /飞行器:N / MAC: H / MPR: N /梅:R /女士:C / MC: N / MI: H / MA: L

我们收到一份安全报告security@www.tubolov.com关于Grafana中的XSS漏洞。后来发现它影响了Grafana 8.0.0-beta1到8.2.2的版本。cve - 2021 - 41174已被分配到此漏洞。

影响

如果攻击者能够说服受害者访问引用易受攻击页面的URL,则可能在受害者的浏览器上下文中执行任意JavaScript内容。

访问恶意链接的用户必须是未经身份验证的,并且该链接必须位于菜单栏中包含登录按钮的页面。

在Grafana中,未经身份验证的用户可以通过两种方式打开包含登录按钮的页面:

  • 启用匿名认证。这意味着Grafana的所有页面都可以被攻击。
  • 该链接指向一个未经身份验证的页面。以下网页易受攻击:
    • / * / dashboard-solo快照
    • / * /仪表板/快照
    • / /邀请:代码

url必须精心设计以利用AngularJS的渲染,并包含AngularJS表达式的插值绑定。AngularJS使用双花括号进行插值绑定:{{}}

表达式的一个例子是:{{constructor.constructor(警报(1))()}}.它可以像这样包含在链接URL中:

https://play.grafana.org/dashboard/snapshot/%7B%7Bconstructor.constructor(警报(1))()% 7 d % 7 d ? orgId = 1

当用户点击链接并呈现页面时,登录按钮将包含带有查询参数的原始链接,以强制重定向到登录页面。URL没有被验证,AngularJS渲染引擎将执行URL中包含的JavaScript表达式。

攻击审计

我们不能保证以下内容将识别所有攻击,因此如果您使用以下描述的审计过程发现了一些攻击,您应该考虑进行全面评估。

通过反向代理/负载均衡器日志

要确定您的Grafana安装是否被此漏洞利用,请通过反向代理/负载平衡器访问日志搜索路径包含的实例{{然后是一些会调用JavaScript代码的东西。例如,这可能是试图显示假登录页面或窃取浏览器或会话数据的代码。的OWASP备忘单有几个XSS攻击的例子。

通过Grafana企业审计功能

如果您在配置中启用了“记录web请求”Router_logging = true,在哪里查找请求路径包含{{然后是一些会调用JavaScript代码的东西。

打补丁的版本

8.2.3发布:

bob彩票中奖计划解决办法和缓解措施

下载并安装适合您的Grafana版本的补丁。

Grafana云实例已经被修补,并且Grafana企业在禁止的情况下,向客户提供了更新的二进制文件。

解决方案

如果由于某种原因不能升级,可以使用反向代理或类似的阻塞访问来阻塞文本字符串{{在路上。

Nginx规则阻塞字符串文本的例子{{

位置~ \{\{{拒绝所有;}

时间轴和事后分析

以下是从我们最初得知这个问题开始的详细时间表。所有时间都是UTC时间。

  • 2021-10-21 23:13:安全研究员发送关于跨站漏洞的初始报告。
  • 2021-10-21 23:13:确认在至少8.0.5和8.2.2版本中是可重复的。
  • 2021-10-22 02:02:中度。
  • 发现开启匿名认证的Grafana实例是脆弱的。这包括https://play.grafana.org/
  • 2021-10-22 09:50:作为缓解措施,对Grafana Cloud上的所有实例禁用匿名访问。
  • 2021-10-22 11:15:部署在Grafana Cloud上的工作区,可以阻止恶意请求。
  • 2021-10-22 12:35:为Grafana Cloud上的实例启用匿名访问。
  • 2021-10-22 12:51:所有被解决方案保护的实例。从现在开始,Grafana Cloud不再受影响。
  • 2021-10-22 14:05: Grafana Cloud实例更新修复。
  • 2021-10-22 19:23:确定不需要周末工作,因为问题是中等严重程度,根本原因已经确定。
  • 2021-10-25 14:13: Grafana Cloud审计结束;没有剥削的证据。
  • 2021-10-27 12:00: Grafana企业图片发布给客户。
  • 2021-11-03 12:00:公开发布。

报告安全问题

如果您认为发现了安全漏洞,请将报告发送至security@www.tubolov.com.此地址可用于Grafana Labs的所有开源和商业产品(包括但不限于Gbob电竞频道rafana、Tempo、Loki、k6、Tanka和Grafanabob手机app官网 Cloud、Grafana Enterprise和www.tubolov.com)。我们只接受这个地址的漏洞报告。我们更希望您使用我们的PGP密钥加密您的消息。密钥指纹为:

F988 7bea 027a 049f ae8e 5caa d125 8932 be24 c5ca

该密钥可从keys.gnupg.net通过搜索security@grafana

安全公告

有安全保障类别在Grafana博客上,我们将发布任何包含安全补丁的总结、补救和缓解细节,您可以订阅我们的更新保安通告RSS频道