🇰🇷 한글 설명
WordPress의 Flex Import 플러그인 3.0 이하 버전에서 권한 검증 및 논스(nonce) 확인이 누락된 취약점이 발견되었습니다. 이로 인해 구독자 권한 이상의 인증된 공격자가 임의의 라이선스를 활성화하거나 기존의 정품 라이선스를 비활성화하여 프리미엄 기능을 방해할 수 있습니다.
💡 쉬운 설명
플러그인의 라이선스 관리 기능에 보안 잠금장치가 없어, 일반 사용자 권한을 가진 사람이 라이선스 설정을 마음대로 바꿀 수 있는 문제입니다. 이를 통해 유료 기능을 몰래 쓰거나 정상적인 유료 결제 상태를 망가뜨릴 수 있습니다.
🇺🇸 원문 (English)
The Flex Import plugin for WordPress is vulnerable to Missing Authorization in all versions up to, and including, 3.0. This is due to the license_activate_fleximp() and license_deactivate_fleximp() functions, hooked to the wp_ajax_license_activate_fleximp and wp_ajax_license_deactivate_fleximp AJAX actions, lacking both a capability check (current_user_can()) and nonce verification (the client-side script sends a 'wpnonce' value but the handlers never validate it). This makes it possible for authenticated attackers, with subscriber-level access and above, to activate an arbitrary/fraudulent license key (persisting it via update_option('fleximp_is_premium') and toggling validation, suspension, and bundle status options) or deactivate the site's legitimate license (deleting the stored key and setting fleximp_validation_status to false), thereby disrupting the plugin's premium functionality.
📍 영향받는 시스템
WordPress Flex Import plugin (version 3.0 and below)
⚔️ 공격 벡터
인증된 사용자(Subscriber 권한 이상)가 AJAX 요청을 통해 라이선스 활성화/비활성화 함수를 직접 호출
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하거나, 함수 내에 current_user_can() 및 nonce 검증 로직을 추가해야 합니다.
🔧 검증 코드
출력 결과에 flex-import가 포함되어 있다면 해당 플러그인이 설치된 것이며, 설치된 버전을 확인하여 3.0 이하인지 점검해야 합니다.
wp plugin list --status=active | grep -i 'flex-import'