🇰🇷 한글 설명
python-dotenv 1.2.2 이전 버전의 set_key()와 unset_key() 함수가 .env 파일 수정 시 심볼릭 링크를 검증하지 않아, 로컬 공격자가 조작된 링크를 통해 임의의 파일을 덮어쓸 수 있습니다. 교차 디바이스 이름 변경이 발생할 때 취약점이 활성화됩니다.
💡 쉬운 설명
python-dotenv 라이브러리가 .env 파일을 수정할 때 심볼릭 링크를 따라가서, 로컬 사용자가 다른 파일들을 의도하지 않게 덮어쓸 수 있습니다. 공격자는 링크를 설정하여 중요 파일을 변조할 수 있습니다.
🇺🇸 원문 (English)
python-dotenv reads key-value pairs from a .env file and can set them as environment variables. Prior to version 1.2.2, `set_key()` and `unset_key()` in python-dotenv follow symbolic links when rewriting `.env` files, allowing a local attacker to overwrite arbitrary files via a crafted symlink when a cross-device rename fallback is triggered. Users should upgrade to v.1.2.2 or, as a workaround, apply the patch manually.
📍 영향받는 시스템
python-dotenv < 1.2.2 (set_key, unset_key 함수 사용)
⚔️ 공격 벡터
로컬 공격자가 .env 파일 경로에 심볼릭 링크 생성 후 애플리케이션의 키 수정 함수 호출로 임의 파일 덮어쓰기
🛡️ 대응 방법
python-dotenv를 1.2.2 이상으로 업그레이드 또는 공식 패치 수동 적용
🔧 검증 코드
출력된 버전 번호가 1.2.2 이상이면 안전, 미만이면 즉시 업그레이드 필요
pip show python-dotenv | grep Version || python -c "import dotenv; print(dotenv.__version__)"