🇰🇷 한글 설명
Django의 URLField verify_exists 기능이 Python 라이브러리를 사용하여 임의의 URL에 타임아웃 없이 접근하는 취약점. 공격자가 느린 응답, 불완전한 연결, 또는 대량의 데이터를 반환하는 URL로 서버를 과부하 시켜 서비스 거부(DoS)를 유발할 수 있습니다.
💡 쉬운 설명
Django 웹사이트에서 사용자가 입력한 웹사이트 주소가 유효한지 확인할 때, 악의적인 사이트에 연결되면 무한정 기다리게 되어 서버가 응답 불가 상태가 됩니다. 공격자는 이를 이용해 정상적인 사용자들이 웹사이트에 접속하지 못하도록 방해할 수 있습니다.
🇺🇸 원문 (English)
The verify_exists functionality in the URLField implementation in Django before 1.2.7 and 1.3.x before 1.3.1 relies on Python libraries that attempt access to an arbitrary URL with no timeout, which allows remote attackers to cause a denial of service (resource consumption) via a URL associated with (1) a slow response, (2) a completed TCP connection with no application data sent, or (3) a large amount of application data, a related issue to CVE-2011-1521.
📍 영향받는 시스템
Django 1.2.7 미만, Django 1.3.x 중 1.3.1 미만
⚔️ 공격 벡터
verify_exists 기능이 활성화된 URLField를 포함한 폼에서 느린 응답/불완전한 연결/대량 데이터를 반환하는 URL 제출
🛡️ 대응 방법
Django를 1.2.7 이상 또는 1.3.1 이상으로 업그레이드하고, URLField에 verify_exists 기능 비활성화 검토
🔧 검증 코드
설치된 Django 버전이 1.2.7 미만 또는 1.3.0-1.3.0 범위면 취약, 1.2.7 이상 또는 1.3.1 이상이면 패치됨
python -c "import django; print(django.get_version())" 2>/dev/null | grep -E '^1\.[23]\.' && echo 'Vulnerable version detected' || echo 'Patched or different version'