🇰🇷 한글 설명
WordPress용 GeoDirectory 플러그인 2.8.181 이하 버전에서 텍스트 유형의 커스텀 필드를 통한 저장형 XSS 취약점이 발견되었습니다. 인증된 공격자가 AJAX 엔드포인트를 통해 특수하게 인코딩된 스크립트를 삽입하면, 해당 페이지를 방문하는 사용자의 브라우저에서 임의의 스크립트가 실행될 수 있습니다.
💡 쉬운 설명
게시판의 전화번호 입력창 같은 곳에 악성 코드를 몰래 숨겨둘 수 있는 보안 약점입니다. 이 코드가 저장되면 해당 페이지를 보는 다른 사람의 정보를 훔치거나 웹사이트를 조작할 수 있습니다.
🇺🇸 원문 (English)
The GeoDirectory – WP Business Directory Plugin and Classified Listings Directory plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Text-type Custom Field (e.g., 'phone') in all versions up to, and including, 2.8.181 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The payload must be stored in a text-type custom field (such as a phone field) via the AJAX geodir_save_post endpoint, using entity-encoded angle brackets (e.g., <img src=x onerror=alert(1)>) to bypass the strpos()-gated tag-stripping check.
📍 영향받는 시스템
GeoDirectory – WP Business Directory Plugin and Classified Listings Directory (버전 2.8.181 및 그 이하 모든 버전)
⚔️ 공격 벡터
인증된 사용자가 AJAX geodir_save_post 엔드포인트를 통해 엔티티 인코딩된 스크립트를 커스텀 필드에 삽입
🛡️ 대응 방법
플러그인을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 플러그인 버전이 2.8.181 이하인지 확인하십시오.
wp plugin list --status=active | grep -i 'geodir' | awk '{print $2}'