🇰🇷 한글 설명
Python의 geocoding 라이브러리인 geopy 2.5.0 미만 버전에서 발생하는 취약점입니다. 악의적으로 조작된 긴 좌표 문자열을 입력할 경우 비효율적인 정규 표현식 동작으로 인해 과도한 CPU 자원을 소모하게 됩니다. 이를 통해 공격자는 서비스 거부(DoS) 상태를 유발할 수 있습니다.
💡 쉬운 설명
잘못된 형식의 아주 긴 좌표 데이터를 입력하면 컴퓨터가 이를 처리하느라 과부하가 걸려 멈출 수 있습니다. 공격자가 이 방법을 반복하면 서비스가 중단될 위험이 있습니다.
🇺🇸 원문 (English)
geopy is a geocoding library for Python. Prior to 2.5.0, geopy.Point and Point.from_string() can spend excessive CPU time due to inefficient regular-expression behavior when an application passes a long malformed coordinate string without the 256-character input limit used by the fix. Geocoder reverse methods also reach the vulnerable parsing path when called with string inputs. Repeated attacker-controlled requests can cause a denial of service, while the numeric Point constructor is unaffected. This issue is fixed in version 2.5.0.
📍 영향받는 시스템
geopy library versions prior to 2.5.0
⚔️ 공격 벡터
조작된 긴 문자열을 포함한 좌표 데이터를 geopy.Point 또는 reverse geocoding 메서드에 전달
🛡️ 대응 방법
geopy 라이브러리를 2.5.0 버전 이상으로 업데이트
🔧 검증 코드
출력된 Version 값이 2.5.0 미만이면 취약한 상태입니다.
pip show geopy | grep Version