🇰🇷 한글 설명
WordPress용 Anomify AI 플러그인 0.3.6 이하 버전에서 CSRF 및 저장형 XSS 취약점이 발견되었습니다. 설정 페이지의 논스(nonce) 검증 누락과 출력 시 이스케이프 처리 미흡으로 인해, 공격자가 관리자의 권한을 도용하여 악성 스크립트를 데이터베이스에 저장하고 실행할 수 있습니다.
💡 쉬운 설명
관리자가 모르는 사이에 악성 링크를 클릭하면, 해커가 플러그인 설정을 조작하여 관리자의 브라우저에서 위험한 코드가 실행되게 만들 수 있습니다. 이를 통해 해커는 관리자 권한을 탈취하거나 웹사이트를 제어할 수 있습니다.
🇺🇸 원문 (English)
The Anomify AI – Anomaly Detection and Alerting plugin for WordPress is vulnerable to Cross-Site Request Forgery (CSRF) leading to Stored Cross-Site Scripting (XSS) in versions up to and including 0.3.6. This is due to missing nonce verification on the settings page handler and insufficient output escaping in the admin_options.php template. The settings form includes no wp_nonce_field() and the handler performs no check_admin_referer() check, meaning any cross-origin POST can modify plugin settings. The API key field is sanitized only with sanitize_text_field(), which strips HTML tags but does not encode double-quote characters; the value is then rendered into an HTML attribute via bare echo without esc_attr(), allowing a double-quote attribute-escape payload to survive both sanitization and storage. This makes it possible for unauthenticated attackers to inject arbitrary web scripts by tricking a logged-in administrator into visiting a malicious page that submits a forged request, storing the payload in the database and causing it to execute in the administrator's browser whenever the plugin settings page is visited.
📍 영향받는 시스템
Anomify AI – Anomaly Detection and Alerting plugin for WordPress (버전 0.3.6 이하)
⚔️ 공격 벡터
CSRF를 통해 조작된 POST 요청을 보내 플러그인 설정값에 악성 스크립트를 저장한 후, 관리자가 설정 페이지를 방문할 때 XSS가 실행됨
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하거나, 설정 핸들러에 wp_nonce_field() 및 check_admin_referer()를 추가하고 출력 시 esc_attr()를 적용해야 함
🔧 검증 코드
출력 결과에 'anomify-ai'가 포함되어 있다면 해당 플러그인이 설치된 것이며, 설치된 버전을 확인하여 0.3.6 이하인지 점검해야 합니다.
wp plugin list --status=active | grep -i 'anomify-ai'