Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2024-1561 — CVE-2024-1561 - Gradio 任意文件读取 | Kitploit
工具/GitHubGitHub/k3ystr0k3r/cve-2024-1561
漏洞分析漏洞利用Web应用程序漏洞利用信息收集渗透测试学习与教育
GitHubk3ystr0k3r/cve-2024-1561

CVE-2024-1561

CVE-2024-1561 - Gradio 任意文件读取

查看仓库
1个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2024-1561 - Gradio 任意文件读取

CVE-2024-1561 是一个影响 Gradio 4.13.0 之前版本的任意文件读取漏洞。Gradio 是一个流行的 Python 框架,用于快速为机器学习模型和 AI 应用构建 Web 界面。

该漏洞的成因在于 /component_server 端点未能正确限制内部 Component 类中可被调用的方法。攻击者可以利用这一行为来调用那些本不应通过 HTTP 暴露的方法。

其中一种方法 move_resource_to_block_cache 允许将本地文件系统中的文件复制到 Gradio 的临时缓存目录中。文件一旦被复制,便可通过 /file 端点访问,从而使攻击者能够获取其内容。

尽管该漏洞不能直接实现远程代码执行,但它可能暴露服务器上的敏感文件,并可用于收集凭据、配置文件、API 密钥、令牌或其他有助于进一步攻击的信息。


受影响版本

  • Gradio < 4.13.0

4.13.0 及更高版本已包含必要的安全检查,可防止任意方法调用。


根本原因

该问题源于 /component_server 端点内的验证不足。

Gradio 没有将请求限制在安全的可调用函数列表中,而是允许攻击者指定组件实例上任意的方法名称。

由于内部方法:

root@kitploit:~
move_resource_to_block_cache()

接受文件系统路径作为输入,攻击者可以指示应用缓存服务器上任何可读的文件。

一旦被缓存,该文件就会通过 Gradio 正常的文件服务功能被暴露。


利用过程

一次成功的攻击通常包含以下步骤:

  1. 查询 /config 端点。
  2. 获取有效的组件 ID。
  3. 向 /component_server 发送请求。
  4. 调用 move_resource_to_block_cache 方法。
  5. 提供目标文件的路径(例如 /etc/passwd)。
  6. 在服务器响应中获取临时缓存路径。
  7. 通过 /file 端点下载缓存的文件。

该过程可使 Gradio 进程可读取的任意文件被远程获取。


示例请求

root@kitploit:~
POST /component_server HTTP/1.1
Host: target
Content-Type: application/json

{
    "component_id": "3",
    "data": "/etc/passwd",
    "fn_name": "move_resource_to_block_cache",
    "session_hash": "aaaaaaaaaaa"
}

如果成功,Gradio 会返回缓存文件的位置。

攻击者随后可以请求:

root@kitploit:~
GET /file=/tmp/gradio/<cached-file>/passwd HTTP/1.1
Host: target

来获取文件内容。


安全影响

成功利用该漏洞可能允许攻击者读取敏感文件,包括:

  • /etc/passwd
  • 私有的 SSH 密钥
  • 环境文件(.env)
  • API 令牌
  • 云平台凭据
  • 应用配置文件
  • 数据库凭据
  • 源代码
  • 身份验证机密

具体影响取决于 Gradio 应用所拥有的权限。


缓解措施

要修复此漏洞,请采取以下措施:

  • 将 Gradio 升级到 4.13.0 或更高版本。
  • 避免将 Gradio 应用直接暴露在公共互联网上。
  • 尽可能要求身份验证。
  • 使用反向代理或防火墙限制访问。
  • 以所需的最小权限运行 Gradio。
  • 避免将敏感凭据存储在应用进程可访问的位置。

参考链接

  • CVE: https://nvd.nist.gov/vuln/detail/CVE-2024-1561
  • 补丁: https://github.com/gradio-app/gradio/pull/6884

免责声明

本仓库仅用于教育目的、安全研究和经授权的渗透测试。在测试你不拥有或未经授权评估的系统之前,请务必获得明确的许可。

下载工具