🇰🇷 한글 설명
MapServer 8.6.4 미만 버전에서 PostGIS 런타임 필터 변환 시 입력값에 대한 숫자 검증이 누락되어 SQL 인젝션 취약점이 발생합니다. 공격자는 인증 없이 CGI qstring 또는 OGC API Features의 featureId를 통해 조작된 입력을 전달하여 데이터베이스 쿼리를 우회하거나 정보를 탈취할 수 있습니다.
💡 쉬운 설명
지도 서비스를 제공하는 프로그램에서 사용자가 입력한 값을 제대로 검사하지 않아 발생하는 보안 문제입니다. 나쁜 의도를 가진 사람이 특수 문자를 입력하면 데이터베이스의 숨겨진 정보를 몰래 빼내거나 시스템에 과부하를 줄 수 있습니다.
🇺🇸 원문 (English)
MapServer is a system for developing web-based GIS applications. Prior to 8.6.4, MapServer's PostGIS runtime filter translation in src/mappostgis.cpp and msPostGISLayerTranslateFilter() treats a filteritem as numeric when CONNECTIONTYPE POSTGIS and metadata such as gml_<item>_type=Integer are configured, but it does not verify that attacker-controlled CGI qstring or OGC API Features featureId input is a numeric literal. The unquoted input is concatenated into the generated PostgreSQL/PostGIS predicate, allowing an unauthenticated remote attacker with access to an affected query endpoint to bypass predicates, enumerate unintended records, perform boolean-based or time-based SQL injection, and increase database load. The issue does not by itself establish database modification capabilities. This issue is fixed in version 8.6.4.
📍 영향받는 시스템
MapServer 8.6.4 미만 모든 버전
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 조작된 CGI qstring 또는 OGC API Features의 featureId 입력을 통해 SQL 인젝션 수행
🛡️ 대응 방법
MapServer를 최신 보안 패치가 적용된 8.6.4 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 MapServer 버전이 8.6.4 미만인지 확인하십시오.
mapserver --version 2>/dev/null || dpkg -l | grep mapserver