🇰🇷 한글 설명
Python 2.6 이전 버전의 PySys_SetArgv API에서 프로그램 이름(argv[0])에 경로 구분자가 없을 때 sys.path 첫 번째에 빈 문자열을 추가하는 취약점입니다. 공격자가 현재 작업 디렉토리에 악의적인 Python 파일을 배치하여 임의 코드를 실행할 수 있습니다.
💡 쉬운 설명
Python이 라이브러리를 찾을 때 현재 폴더를 가장 먼저 확인하도록 만드는 버그입니다. 해커가 현재 폴더에 가짜 라이브러리를 놓으면 그것이 실행될 수 있습니다.
🇺🇸 원문 (English)
Untrusted search path vulnerability in the PySys_SetArgv API function in Python 2.6 and earlier, and possibly later versions, prepends an empty string to sys.path when the argv[0] argument does not contain a path separator, which might allow local users to execute arbitrary code via a Trojan horse Python file in the current working directory.
📍 영향받는 시스템
Python 2.6 및 이전 버전 (일부 이후 버전도 영향 가능)
⚔️ 공격 벡터
현재 작업 디렉토리에 악의적인 Python 파일을 배치 후 Python 프로그램 실행
🛡️ 대응 방법
Python을 2.6.3 이상의 패치된 버전으로 업그레이드
🔧 검증 코드
현재 설치된 Python 버전이 2.6.3 미만이면 Vulnerable로 표시됩니다. 2.6.3 이상 버전으로 업그레이드해야 합니다.
python --version 2>&1 | grep -oE '[0-9]\.[0-9]\.[0-9]' | awk -F. '{if($1<2 || ($1==2 && $2<6) || ($1==2 && $2==6 && $3<3)) print "Vulnerable"}'