🇰🇷 한글 설명
Python 2.6~3.2에서 ~/.pypirc 파일이 데이터 쓰기 전에 world-readable 권한으로 생성되는 race condition 문제입니다. 로컬 사용자가 이 파일을 읽어 PyPI 사용자명과 비밀번호를 탈취할 수 있습니다.
💡 쉬운 설명
파이썬 설정 파일이 너무 열린 권한으로 잠시 노출됩니다. 그 순간에 다른 사람이 당신의 사용자명과 암호를 볼 수 있습니다.
🇺🇸 원문 (English)
Python 2.6 through 3.2 creates ~/.pypirc with world-readable permissions before changing them after data has been written, which introduces a race condition that allows local users to obtain a username and password by reading this file.
📍 영향받는 시스템
Python 2.6, 2.7, 3.0, 3.1, 3.2 (pip/setuptools 사용 시)
⚔️ 공격 벡터
로컬 사용자가 ~/.pypirc 파일 생성 중 race condition 윈도우를 이용해 파일 읽기
🛡️ 대응 방법
Python 3.3 이상으로 업그레이드 또는 ~/.pypirc 파일 권한을 600으로 수동 설정
🔧 검증 코드
Python 버전이 3.3 이상이면 안전하고, .pypirc가 있다면 권한이 600이어야 안전합니다 (600 미만은 위험).
python --version 2>&1 | grep -oE '[0-9]+\.[0-9]+' && test -f ~/.pypirc && stat -c '%a' ~/.pypirc 2>/dev/null || echo 'No .pypirc found'