安全矩阵

 找回密码
 立即注册
搜索
查看: 2304|回复: 0

Grafana V8.0+未授权任意文件读取

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-12-15 16:22:59 | 显示全部楼层 |阅读模式
原文链接:Grafana V8.0+未授权任意文件读取

Grafana V8.0+未授权任意文件读取一、漏洞描述
Grafana是一个跨平台、开源的数据可视化网络应用程序平台。用户配置连接的数据源之后,Grafana可以在网络浏览器里显示数据图表和警告。目前Grafana 8.x版本存在未授权任意文件读取漏洞,攻击者在未经身份验证的情况下可通过默认存在的插件,构造特殊的请求包读取服务器任意文件
二、影响版本
Grafana 8.x
三、分析
在GitHub上下载源码分析(V8.2.6)根据漏洞的请求路径r.Get("/public/plugins/:pluginId/*", hs.getPluginAssets)

跟踪getPluginAssets方法后会发现从请求路径中获取/public/plugins/ 后的参数赋值给pluginID, 然后再被拼接至pluginFilePath进入文件读取片段


requestedFile := filepath.Clean(web.Params(c.Req)["*"])
pluginFilePath := filepath.Join(plugin.PluginDir, requestedFile)
就是通过默认存在的插件来拼接文件路径构造请求读取文件


插件路径 public/app/plugins/panel


四、测试
fofa搜索目标测试,版本为V8.2.4




五、修复建议
官方已更新到V8.3.1版本,对漏洞进行了修复,可进行参考
https://github.com/grafana/grafana/releases
https://grafana.com/blog/2021/12 ... erity-security-fix/


经过修复后的代码中,剔除了
requestedFile := filepath.Clean(web.Params(c.Req)["*"])
pluginFilePath := filepath.Join(plugin.PluginDir, requestedFile)
重新做了处理


六、时间表和事后分析
2021-12-03:安全研究员发送初步报告
2021-12-03:确认 8.0.0-beta1 到 8.3.0
2021-12-03:确认 Grafana Cloud 不存在漏洞
2021-12-03:确定并提交给 Git 的安全修复
2021-12-03:确定发布时间表:2021-12-07 为私人客户发布,2021-12-14 为公开发布
2021-12-06:收到关于漏洞的第二次报告
2021-12-07:我们收到信息称该漏洞已泄露给公众,将其变为0day
2021-12-07:决定尽快发布
2021-12-07:私人版本减少了 2 小时的宽限期,而不是通常的 1 周时间框架
2021-12-07:公开发布
七、参考链接
https://twitter.com/hacker_/status/1467880514489044993
https://twitter.com/naglinagli/status/1468155313182416899
https://github.com/jas502n/Grafana-VulnTips


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2025-4-29 19:18 , Processed in 0.019884 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表