🇰🇷 한글 설명
GitFS 클래스의 find_file 메서드에서 검증되지 않은 'tgt_env' 입력값을 os.path.join에 사용하여 경로 조작 공격이 발생합니다. 공격자가 이를 악용하여 Master 프로세스 권한으로 임의의 파일을 삭제할 수 있습니다.
💡 쉬운 설명
Salt의 파일 관리 시스템에서 잘못된 경로 검증으로 인해 공격자가 시스템의 중요한 파일을 삭제할 수 있습니다. 사용자 입력을 제대로 검사하지 않아 발생하는 보안 문제입니다.
🇺🇸 원문 (English)
Arbitrary directory creation or file deletion. In the find_file method of the GitFS class, a path is created using os.path.join using unvalidated input from the “tgt_env” variable. This can be exploited by an attacker to delete any file on the Master's process has permissions to.
📍 영향받는 시스템
SaltStack (Salt) GitFS 모듈 - 정확한 버전은 공지된 패치 이전의 모든 버전
⚔️ 공격 벡터
공격자가 'tgt_env' 파라미터에 경로 조작 시퀀스(../)를 포함하여 find_file 메서드 호출 시 범위를 벗어난 파일 접근
🛡️ 대응 방법
os.path.join 전 tgt_env 값 검증 및 정규화, pathlib.Path.resolve()로 경로 정규화 후 의도된 디렉토리 범위 확인
🔧 검증 코드
Salt 버전 확인 후 gitfs.py 파일 위치 파악; 해당 파일의 find_file 메서드에서 tgt_env 입력값 검증 로직 존재 여부 확인
salt --version && find /etc/salt /opt/salt -name 'gitfs.py' -type f 2>/dev/null | xargs grep -l 'def find_file' | head -1