🔍 CVE-2024-47167

9.8
CVSS Score
CRITICAL
2024-10-10
2026-06-17 07:56
✅ 완료

🇰🇷 한글 설명

Gradio의 /queue/join 엔드포인트에서 발생하는 서버 측 요청 위조(SSRF) 취약점입니다. 공격자가 임의의 URL로 HTTP 요청을 강제하여 내부 네트워크를 공격하거나 악성 파일을 서버에 업로드할 수 있습니다.

💡 쉬운 설명

해커가 Gradio 서버를 조종하여 서버 내부의 다른 컴퓨터에 몰래 접속하거나 나쁜 파일을 심을 수 있는 문제입니다. 비디오 기능처럼 인터넷 주소를 불러오는 기능이 있는 경우 특히 위험합니다.

🇺🇸 원문 (English)

Gradio is an open-source Python package designed for quick prototyping. This vulnerability relates to **Server-Side Request Forgery (SSRF)** in the `/queue/join` endpoint. Gradio’s `async_save_url_to_cache` function allows attackers to force the Gradio server to send HTTP requests to user-controlled URLs. This could enable attackers to target internal servers or services within a local network and possibly exfiltrate data or cause unwanted internal requests. Additionally, the content from these URLs is stored locally, making it easier for attackers to upload potentially malicious files to the server. This impacts users deploying Gradio servers that use components like the Video component which involve URL fetching. Users are advised to upgrade to `gradio>=5` to address this issue. As a workaround, users can disable or heavily restrict URL-based inputs in their Gradio applications to trusted domains only. Additionally, implementing stricter URL validation (such as allowinglist-based validation) and ensuring that local or internal network addresses cannot be requested via the `/queue/join` endpoint can help mitigate the risk of SSRF attacks.

📍 영향받는 시스템

Gradio (Video 컴포넌트 등을 사용하는 버전, gradio 5 미만 버전)

⚔️ 공격 벡터

/queue/join 엔드포인트를 통해 조작된 URL을 전달하여 서버가 내부 네트워크로 요청을 보내도록 유도

🛡️ 대응 방법

Gradio를 버전 5 이상으로 업그레이드하거나, 허용된 도메인만 사용하도록 URL 입력을 엄격히 제한

🔧 검증 코드

출력된 Gradio 버전이 5.0.0 미만이면 해당 취약점에 노출될 가능성이 있습니다.

Shell / Script
pip show gradio | grep Version

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Spring Data REST