关于Aiohttp路径遍历漏洞(CVE-2024-23334)的安全预警
一、 基本情况
Aiohttp是一个适用于asyncio 和 Python 的异步HTTP客户端/服务器框架。
二、 漏洞描述
Aiohttp中存在一个路径遍历漏洞(CVE-2024-23334),其CVSS评分为7.5,目前该漏洞的细节及PoC已公开。
Aiohttp受影响版本中,当使用aiohttp作为web服务器并配置静态路由时,需要指定静态文件的根路径。选项“follow_symlinks”可用于确定是否遵循静态根目录之外的符号链接,当该选项设置为True时,不会验证给定的文件路径是否在根目录中,可能导致目录遍历漏洞,从而可能导致未经授权访问系统上的任意文件。
三、 影响范围
1.0.5 < Aiohttp < 3.9.2
四、 修复建议
目前该漏洞已经修复,受影响用户可升级到以下版本:
Aiohttp >=3.9.2
下载链接:
https://github.com/aio-libs/aiohttp/releases
临时措施
应用程序仅在使用以下设置代码时容易受到攻击:
app.router.add_routes([
web.static("/static", "static/", follow_symlinks=True), # Remove follow_symlinks to avoid the vulnerability
])
即使升级到 aiohttp 的修复版本,也可遵循以下安全措施:
● 如果在受限制的本地开发环境之外使用follow_symlinks=True,请立即禁用该选项。
● aiohttp建议使用反向代理服务器(如 nginx)来处理静态资源,不要在aiohttp中将这些静态资源用于生产环境。
五、 参考链接
https://github.com/aio-libs/aiohttp/security/advisories/GHSA-5h86-8mv2-jq9f
https://github.com/aio-libs/aiohttp/pull/8079