微软官方项目OLive存在任意文件读取漏洞(暂未修复)
2022-7-18 09:7:50 Author: 我不是Hacker(查看原文) 阅读量:9 收藏

点击蓝字·关注我们
全文 742 字,预计阅读时间 2 分钟
前言

最近看一个关于flask的send_file()函数滥用,导致任意文件读取的漏洞点。发现有研究者在2022年3月就发现微软官方项目OLive中存在这个利用点,并向官方提交了issue和pr。

此漏洞在4月合入主线并修复。但是在查看主线的过程中,发现由于官方操作失误,导致最新的主线代码中,已修复的漏洞又重新被引入

当前已提issue,官方目前暂未修复此漏洞。

OLive

微软旗下的项目,用于加速训练模型。包括转换模块,优化模块和web控制台,本次漏洞点就在web控制台

漏洞详情

OLive的Web控制台后端使用flask开发,漏洞点在download路由处。

使用了os.path.join 函数将传入的filename拼接到项目root路径下,此函数不会过滤 ../ ,若传入的filename为

../../../../../../../etc/passwd

则join后得到的文件路径为 

/etc/passwd

直接使用 send_file函数读取上述文件并返回给前端,从而读取出了 /etc/passwd ,造成了任意文件读取漏洞。

漏洞修复

官方当时修复的方案是:使用flask自带的safe_join函数进行文件路径拼接,这个函数会过滤掉路径中的危险字符。

事件时间线

- 2022.3:安全研究者发现OLive中的任意文件读取漏洞,并提交pr

https://github.com/microsoft/OLive/pull/83/files

- 2022.4:修复代码合入主线

- 2022.5:官方维护者错误地将漏洞代码覆盖已修复的文件

https://github.com/microsoft/OLive/commit/e3bb70414e4df7ab81ed356959d438982368484e

- 2022.7:cckuailong发现问题并提交issue给官方

总结

漏洞是个比较简单的漏洞,但是整个事件挺有意思的。之前没想到微软这种巨头也会犯如此有趣的错误。不过想想,之前windows好像也有过打补丁,把之前的漏洞引入回来的先例。

参考链接

https://github.com/github/securitylab/issues/669

END
免责声明

本公众号内的文章及工具仅提供学习用途,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本公众号及文章作者不为此承担任何责任。

好文分享收藏赞一下最美点在看哦

文章来源: http://mp.weixin.qq.com/s?__biz=MzkwNDI1NDUwMQ==&mid=2247486229&idx=1&sn=93024d5cce7b3ea3f4e9ad397b4d42d1&chksm=c0888e5ff7ff0749425221322ce802bc25a4990920feb235376ea27c0b1245116b6f12fdd374#rd
如有侵权请联系:admin#unsafe.sh