🇰🇷 한글 설명
WordPress용 WPCOM Member 플러그인의 인증 우회 취약점으로, 소셜 로그인 콜백 처리 과정에서 nonce 검증 및 OAuth 상태 확인이 누락되어 발생합니다. 공격자는 조작된 GET 요청을 통해 세션 네임스페이스를 오염시켜, 특정 사용자의 openid를 이용해 관리자를 포함한 임의의 계정으로 로그인할 수 있습니다.
💡 쉬운 설명
로그인 과정에서 본인 확인을 하는 절차가 빠져 있어, 공격자가 가짜 정보를 보내 다른 사람의 계정으로 몰래 접속할 수 있는 문제입니다. 특히 관리자 계정으로 접속할 경우 사이트 전체의 제어권을 뺏길 수 있어 매우 위험합니다.
🇺🇸 원문 (English)
The WPCOM Member plugin for WordPress is vulnerable to Authentication Bypass in all versions up to, and including, 1.7.27 via the `uuid` and `code` parameters of the social-login callback handler registered on the `init` hook. The vulnerability exists because the `login` function's social-login flow performs no nonce validation, no OAuth state verification, and no per-visitor namespace isolation in the session store, allowing an unauthenticated attacker to issue a crafted GET request that writes an attacker-named, attacker-valued entry into the global session namespace (bypassing the per-visitor prefix by prepending an underscore), then issue a second GET request triggering `weapp_new_user()` to read that forged entry and resolve the attacker-supplied `openid` value to a bound WordPress account before `wp_set_auth_cookie()` establishes a fully authenticated session. This makes it possible for unauthenticated attackers to log in as any WordPress user — including administrators — whose bound social provider identifier (openid/unionid) is known or discoverable. Successful exploitation requires that the target site has at least one social provider configured (which activates the vulnerable handler) and that the attacker knows or can enumerate the victim account's bound openid or unionid.
📍 영향받는 시스템
WPCOM Member plugin (WordPress) version 1.7.27 및 그 이하 모든 버전
⚔️ 공격 벡터
조작된 uuid 및 code 파라미터를 포함한 GET 요청을 통한 세션 오염 및 인증 우회
🛡️ 대응 방법
WPCOM Member 플러그인을 최신 보안 패치가 적용된 버전으로 즉시 업데이트하십시오.
🔧 검증 코드
명령어 결과에 wpcom-member가 나타나면 해당 플러그인이 설치된 것이며, 설치된 버전이 1.7.27 이하인지 확인이 필요합니다.
wp plugin list --status=active | grep -i 'wpcom-member'