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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-9147-uproot-rce — ROOT TStreamerInfo 메타데이터로부터의 안전하지 않은 Python 소스 생성을 통한 uproot <= 5.7.4 코드 인젝션 | Kitploit
도구/GitHubGitHub/saiteja-erukude/cve-2026-9147-uproot-rce
Payload GenerationVulnerability AnalysisExploitation
GitHubsaiteja-erukude/cve-2026-9147-uproot-rce

CVE-2026-9147-uproot-rce

ROOT TStreamerInfo 메타데이터로부터의 안전하지 않은 Python 소스 생성을 통한 uproot <= 5.7.4 코드 인젝션

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
4일 전아직 검토되지 않음

CVE-2026-9147: TStreamerInfo 메타데이터를 통한 uproot 코드 주입

심각도: 높음, CVSS 4.0 8.5, CVSS 3.1 7.8 (CNA인 VulnCheck가 배정)

벡터 (v4.0): CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

벡터 (v3.1): CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

영향: uproot <= 5.7.4

수정 버전: 5.7.5 / 커밋 c045c28

CWE: CWE-94 (코드 생성의 부적절한 제어, 코드 주입); 보조 CWE-95 (Eval 주입)

보고자: Sai Teja Erukude

CNA: VulnCheck

게시일: 2026년 7월 18일


요약

uproot 5.7.4 및 이전 버전은 ROOT TStreamerInfo 메타데이터에서 Python 클래스 소스를 동적으로 생성하고 런타임에 컴파일합니다.

일부 파일 제어 스트리머 메타데이터 필드는 안전한 인용 없이 생성된 Python 소스에 삽입됩니다. 조작된 ROOT 파일을 제공할 수 있는 공격자는 조작된 요소 이름과 같은 Python 표현식을 깨뜨리는 콘텐츠를 스트리머 메타데이터에 주입할 수 있습니다.

영향을 받는 애플리케이션이 조작된 ROOT 파일을 열고 uproot가 해당 리더 메서드를 생성 및 호출하면, 주입된 Python 표현식이 호스팅 프로세스의 컨텍스트에서 실행될 수 있습니다.

영향

공격자는 영향을 받는 uproot 코드 경로로 공격자가 제어하는 ROOT 파일을 열거나 처리하는 애플리케이션에서 임의의 Python 코드를 실행할 수 있습니다.

애플리케이션에 따라 다음이 가능할 수 있습니다:

  • 프로세스가 접근할 수 있는 파일 읽기 또는 수정.
  • 환경 변수 및 애플리케이션 비밀 정보 접근.
  • 호스트에서 접근 가능한 내부 서비스 호출.
  • 데이터 처리 작업 또는 애플리케이션 동작 방해.

기술적 세부 사항

문제는 ROOT 스트리머 메타데이터에 대한 uproot의 생성-소스 경로에 있습니다.

PoC는 ExploitTarget 클래스용으로 조작된 TStreamerInfo 메타데이터를 포함하는 ROOT 파일을 생성합니다. 조작된 스트리머 요소 이름은 생성된 표현식에서 벗어나 무해한 pathlib 호출을 주입합니다.

보고된 동작은 다음과 같습니다:

  1. uproot가 조작된 ROOT 파일을 엽니다.
  2. uproot가 파일 기반 TStreamerInfo 메타데이터를 읽습니다.
  3. uproot가 ExploitTarget에 대한 Python 클래스 소스를 생성합니다.
  4. 생성된 클래스 소스에는 주입된 표현식이 포함됩니다.
  5. 생성된 read_members 메서드를 호출하면 주입된 표현식이 실행됩니다.

개념 증명

root_file_builder.py는 조작된 스트리머 메타데이터로 malicious_tstreamerinfo.root를 생성합니다.

run_poc.py는 uproot로 파일을 열고, 파일 기반 ExploitTarget 클래스의 생성을 강제하고, 생성된 read_members 메서드를 호출하고, 마커 파일 증거를 검증합니다.

로컬 테스트 환경에서만 실행하십시오:

root@kitploit:~
python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

취약한 버전에서 기대되는 증거:

root@kitploit:~
uproot_version: 5.7.4
file_backed_element_name_contains_payload: True
class_code_contains_injected_pathlib_call: True
expected_exception: True
exception_type: DeserializationError
marker_exists: True
marker_contents:
executed through uproot generated read_members
success: True

페이로드는 의도적으로 무해합니다. 로컬 마커 문자열만 작성합니다:

root@kitploit:~
executed through uproot generated read_members

셸을 생성하거나, 네트워크 서비스에 연결하거나, 비밀 정보를 읽거나, 데이터를 삭제하거나, PoC 디렉터리 밖의 파일을 수정하지 않습니다.

해결 방법

uproot 5.7.5 이상으로 업그레이드하십시오.

즉시 업그레이드가 불가능한 경우:

  • 신뢰할 수 없는 사용자의 ROOT 파일을 처리하지 마십시오.
  • 최소 권한으로 ROOT 파일 처리 작업을 격리하십시오.
  • 처리 전에 예기치 않은 TStreamerInfo 메타데이터를 검증하거나 거부하십시오.
  • 업로드되거나 외부에서 제공된 ROOT 파일을 자동으로 여는 워크플로를 피하십시오.

공개 타임라인

날짜이벤트
2026년 5월 20일VulnCheck에 취약점 제출

크레딧

Sai Teja Erukude가 발견 및 보고했으며, VulnCheck를 통해 조정되었습니다.

참조

  • CVE Record: https://www.cve.org/CVERecord?id=CVE-2026-9147
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-9147
  • VulnCheck advisory: https://www.vulncheck.com/advisories/uproot-and-before-code-injection-via-tstreamerinfo-metadata
  • GitHub advisory: https://github.com/scikit-hep/uproot5/security/advisories/GHSA-6946-mq52-g438
  • Patch commit: https://github.com/scikit-hep/uproot5/commit/c045c2824295d907d2e705f31110c742928e50e7
  • uproot project: https://github.com/scikit-hep/uproot5
도구 다운로드
2026년 5월 20일VulnCheck가 연락 시작; CVE-2026-9147 잠정 배정
2026년 7월 5일패치가 포함된 uproot 5.7.5 릴리스
2026년 7월 18일CVE-2026-9147 게시