🇰🇷 한글 설명
h5io 0.2.6 이전 버전의 read_hdf5() 함수에는 코드 주입 취약점이 있습니다. 공격자가 조작된 HDF5 파일을 제공하면 임의의 코드를 실행할 수 있습니다. 공격자는 timezone이라는 노드에 Python 코드를 저장하여 eval()로 실행시키거나, 임의의 모듈을 지정하여 import를 유도하거나, pandas 노드에 피클 객체를 넣어 역직렬화 공격을 수행할 수 있습니다.
💡 쉬운 설명
h5io라는 데이터 읽기 도구가 특수하게 만든 파일을 열 때 그 안에 숨은 악성 명령을 실행해 버릴 수 있습니다. 따라서 신뢰할 수 없는 HDF5 파일을 열면 컴퓨터가 공격자에게 장악될 위험이 있습니다.
🇺🇸 원문 (English)
h5io before 0.2.6 contains a code injection vulnerability in read_hdf5() that allows attackers to execute arbitrary code by supplying a crafted HDF5 file. Attackers can store Python code in a node titled timezone, which _triage_read() passes to eval() with builtins reachable, name an arbitrary module in class or custom-object nodes that _import_class() imports, or place pickled objects in pd_dataframe or pd_series nodes that pandas deserializes on read.
📍 영향받는 시스템
h5io 0.2.6 미만 버전을 사용하는 모든 Python 환경
⚔️ 공격 벡터
조작된 HDF5 파일을 피해자가 read_hdf5()로 열도록 유도하여 임의 코드 실행
🛡️ 대응 방법
h5io를 0.2.6 이상으로 업그레이드하고, 신뢰할 수 없는 출처의 HDF5 파일은 열지 않습니다.
🔧 검증 코드
출력된 Version 값이 0.2.6 미만이면 취약하고, 0.2.6 이상이면 패치된 버전입니다. 출력이 없으면 h5io가 설치되어 있지 않은 것입니다.
pip show h5io 2>/dev/null | grep -i '^version'