🇰🇷 한글 설명
WordPress용 GamiPress 플러그인 7.9.7 이하 버전에서 인증된 사용자(Subscriber 이상)가 SQL 인젝션을 수행할 수 있는 취약점이 발견되었습니다. wpForo 통합 AJAX 셀렉터의 'q' 파라미터가 적절한 플레이스홀더 없이 처리되어, 이스케이프 문자가 중복되는 허점을 이용해 데이터베이스 쿼리를 조작할 수 있습니다.
💡 쉬운 설명
로그인한 일반 사용자가 웹사이트의 데이터베이스에 몰래 명령을 내려 정보를 빼낼 수 있는 보안 약점입니다. 특정 플러그인의 설정 오류로 인해 입력값이 안전하게 처리되지 않아 발생합니다.
🇺🇸 원문 (English)
The GamiPress plugin for WordPress is vulnerable to authenticated (Subscriber+) SQL Injection via the 'q' parameter of the wpForo integration AJAX selector (action gamipress_wpforo_get_posts) in versions up to, and including, 7.9.7. The value is passed only through $wpdb->esc_like() and interpolated directly into a single-quoted LIKE clause with no %s placeholder. Because esc_like() runs after WordPress core magic quotes, it doubles the injected backslash (\' -> \\'), which MySQL reads as one literal backslash followed by a live closing quote, allowing the attacker to break out of the string and inject boolean-based SQL. The wpForo plugin only needs to be active to register the callback; no wpForo vulnerability is used. Requires a Subscriber account, which can read the gamipress_admin nonce (exposed on every admin page, e.g. /wp-admin/profile.php). Note: the researcher's Simple:Press vectors (PoC 2 & 3) do not reproduce in current code, which uses $wpdb->prepare() with %s placeholders; only the wpForo selector is confirmed.
📍 영향받는 시스템
WordPress GamiPress plugin versions up to and including 7.9.7 (with wpForo integration active)
⚔️ 공격 벡터
Authenticated (Subscriber+) user via 'q' parameter in wpForo integration AJAX selector
🛡️ 대응 방법
GamiPress 플러그인을 최신 보안 패치 버전으로 즉시 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 7.9.7 이하이면 해당 취약점에 노출된 상태입니다.
wp-cli plugin list --name=gamipress --format=json | grep -E '7\.[0-9]{1,2}\.[0-9]'