🇰🇷 한글 설명
uproot 라이브러리가 ROOT TStreamerInfo 레코드를 기반으로 Python 클래스 소스 코드를 동적으로 생성하고 컴파일하는 과정에서 발생하는 취약점입니다. 공격자가 조작된 ROOT 파일의 스트리머 메타데이터 필드에 악성 Python 표현식을 삽입할 경우, 파일 처리 과정에서 임의의 코드가 실행될 수 있습니다.
💡 쉬운 설명
데이터 파일을 읽는 프로그램이 파일 안에 숨겨진 악성 명령어를 실행해버리는 보안 결함입니다. 사용자가 출처가 불분명한 파일을 열기만 해도 해커가 컴퓨터를 제어할 수 있습니다.
🇺🇸 원문 (English)
uproot dynamically generates Python class source code from ROOT TStreamerInfo records in a file and compiles it at runtime. Some file-controlled streamer metadata fields (for example, streamer element names) are interpolated into the generated Python source without safe quoting via repr() or the !r format specifier. An attacker who can supply a crafted ROOT file can place Python expression-breaking content into a streamer metadata field. When uproot generates and invokes the corresponding reader method, the injected Python expression is evaluated in the context of the process opening the file, resulting in arbitrary Python code execution in applications that open or process attacker-controlled ROOT files with affected uproot code paths.
📍 영향받는 시스템
uproot 라이브러리 (취약한 버전)
⚔️ 공격 벡터
조작된 메타데이터가 포함된 ROOT 파일을 제공하여 Python 코드 주입(Code Injection) 수행
🛡️ 대응 방법
uproot 라이브러리를 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 uproot의 버전을 확인하여 취약점이 해결된 최신 버전인지 대조
pip show uproot | grep Version