Kedro 버전 1.2.0의 취약점으로 인해 공격자는 조작된 버전 문자열을 제공하여 경로 탐색을 악용할 수 있습니다. `kedro/io/core.py`의 `_get_versioned_path()` 메서드는 사용자가 제공한 버전 문자열을 삭제 없이 파일 시스템 경로에 직접 삽입합니다. 이를 통해 공격자는 의도한 버전의 데이터 세트 디렉터리를 탈출하고 예상 경로 외부의 파일에 액세스할 수 있습니다. 이 문제는 CLI에서 `--load-versions` 매개변수(예: `_split_load_version)를 통해 도달할 수도 있습니다.
Kedro 버전 1.2.0의 취약점으로 인해 공격자는 조작된 버전 문자열을 제공하여 경로 탐색을 악용할 수 있습니다. kedro/io/core.py의 _get_versioned_path() 메서드는 사용자가 제공한 버전 문자열을 삭제 없이 파일 시스템 경로에 직접 삽입합니다. 이를 통해 공격자는 의도한 버전의 데이터 세트 디렉터리를 탈출하고 예상 경로 외부의 파일에 액세스할 수 있습니다. 이 문제는 kedro/framework/cli/utils.py의 _split_load_versions()가 버전 문자열을 확인하지 않기 때문에 --load-versions 매개변수를 통해 CLI를 통해 도달할 수도 있습니다. 이 취약점은 Kedro가 자동화 또는 오케스트레이션 레이어와 함께 사용되는 환경에서 무단 파일 읽기, 데이터 오염, 프로젝트 간 또는 테넌트 간 데이터 액세스 및 광범위한 다운스트림 영향을 초래할 수 있습니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 71.00 |
| 악용 신호(PoC 존재) | ×1.20 |
| VPI | 85.20 |
VPI 공식 vpi-v1 기준