Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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 코드 인젝션

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

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

게시일: 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 메서드를 호출하고, 마커 파일 증거를 검증합니다.

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

python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

취약한 버전에서 예상되는 증거:

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

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

executed through uproot generated read_members

셸을 실행하거나, 네트워크 서비스에 연결하거나, 시크릿을 읽거나, 데이터를 삭제하거나, PoC 디렉터리 외부의 파일을 수정하지 않습니다.

해결 방안

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

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

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

공개 타임라인

날짜사건
2026년 5월 20일VulnCheck에 취약점 제출
2026년 5월 20일VulnCheck가 연락 개시; CVE-2026-9147 잠정 할당
2026년 7월 5일패치가 포함된 uproot 5.7.5 릴리스
2026년 7월 18일CVE-2026-9147 공개

크레딧

Sai Teja Erukude가 발견하고 보고했습니다.

공개는 VulnCheck를 통해 조정되었습니다.

참고 자료

  • CVE 레코드: https://www.cve.org/CVERecord?id=CVE-2026-9147
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-9147
  • VulnCheck 권고: https://www.vulncheck.com/advisories/uproot-and-before-code-injection-via-tstreamerinfo-metadata
  • GitHub 권고: https://github.com/scikit-hep/uproot5/security/advisories/GHSA-6946-mq52-g438
  • 패치 커밋: https://github.com/scikit-hep/uproot5/commit/c045c2824295d907d2e705f31110c742928e50e7
  • uproot 프로젝트: https://github.com/scikit-hep/uproot5
도구 다운로드