🇰🇷 한글 설명
WordPress용 MapPress Maps 플러그인 2.96.6 버전 이하에서 권한 우회 취약점이 발견되었습니다. REST API 엔드포인트에서 소유권 검증이 누락되어, 인증되지 않은 공격자가 지도 데이터를 읽거나 권한이 낮은 사용자가 다른 사용자의 지도를 수정 및 삭제할 수 있습니다.
💡 쉬운 설명
지도 플러그인의 보안 설정 오류로 인해, 남의 지도를 몰래 보거나 마음대로 지우고 수정할 수 있는 문제입니다. 지도 ID 번호만 알면 누구나 접근이 가능할 수 있습니다.
🇺🇸 원문 (English)
The MapPress Maps for WordPress plugin for WordPress is vulnerable to Authorization Bypass Through User-Controlled Key in all versions up to, and including, 2.96.6. This is due to missing ownership verification in the REST API routes registered via `Mappress_Api::rest_api_init()`, where the GET `/wp-json/mapp/v1/maps/{mapid}` endpoint uses `'permission_callback' => '__return_true'` and the write endpoints (POST update, DELETE, PATCH mutate, POST clone, POST empty_trash) only check the generic `edit_posts` capability without confirming that the requester owns the targeted map — a gap that is not compensated at the model layer, as `Mappress_Map::get()`, `save()`, `delete()`, `mutate()`, and `empty_trash()` all operate on any caller-supplied map ID without an ownership check. This makes it possible for unauthenticated attackers to read sensitive map data — including POI titles, addresses, coordinates, and body content — for any map on the site by enumerating map IDs, and for authenticated attackers with Contributor-level access and above to modify, delete, trash/restore, or clone any map regardless of its author.
📍 영향받는 시스템
MapPress Maps for WordPress plugin (version 2.96.6 and below)
⚔️ 공격 벡터
REST API 엔드포인트의 mapid 파라미터를 조작하여 소유권 검증 없이 데이터에 접근
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하거나, API 호출 시 소유권 검증 로직이 포함된 패치를 적용하십시오.
🔧 검증 코드
출력된 결과에서 mappress-maps 플러그인의 설치 여부와 버전을 확인하여 2.96.6 이하인지 체크합니다.
wp plugin list --allow-root | grep -E 'mappress-maps'