🇰🇷 한글 설명
WordPress의 JSON API Auth 플러그인 3.1.2 이하 버전에서 인증 우회 취약점이 발견되었습니다. 이 취약점은 세션 쿠키가 캐싱될 때 HTTP 메서드와 본문을 무시하는 결함으로 인해 발생하며, 공격자가 관리자의 인증된 세션 쿠키를 탈취하여 사이트 관리자 권한을 획득할 수 있습니다.
💡 쉬운 설명
로그인 정보가 담긴 데이터가 임시 저장되는 과정에서 보안 설정이 누락되어, 누구나 관리자의 로그인 정보를 훔쳐볼 수 있는 문제입니다. 이를 통해 공격자는 아이디와 비밀번호 없이도 관리자 권한으로 사이트를 조작할 수 있습니다.
🇺🇸 원문 (English)
The JSON API Auth plugin for WordPress is vulnerable to Authentication Bypass via Cached Session Cookie Disclosure in all versions up to, and including, 3.1.2. The vulnerability exists because the required PI-Media/json-api parent plugin caches controller dispatch results in transients keyed solely by URI and query string, ignoring HTTP method and POST body; this causes the `generate_auth_cookie()` endpoint — which embeds a live WordPress `logged_in` cookie produced by `wp_generate_auth_cookie()` directly in its JSON response body — to serve that cached authenticated response to any subsequent unauthenticated GET request to the same URI. This makes it possible for unauthenticated attackers to retrieve a valid Administrator `logged_in` session cookie from the cached response and use it to fully authenticate as the site Administrator, including via the same plugin's `get_currentuserinfo` endpoint and any cookie-authenticated controller action. Exploitation requires the PI-Media/json-api parent plugin to be installed and active with the Auth controller enabled, and a legitimate Administrator must have POSTed to `/api/auth/generate_auth_cookie/` within the preceding 24-hour cache TTL; the nominal HTTPS enforcement gate present in `Auth.php` is trivially bypassed by supplying `insecure=cool` as a request parameter.
📍 영향받는 시스템
WordPress JSON API Auth plugin (버전 3.1.2 및 그 이하 모든 버전)
⚔️ 공격 벡터
특정 엔드포인트에 GET 요청을 보내 캐싱된 관리자의 인증 쿠키를 탈취하는 방식
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하거나, 해당 기능을 비활성화하고 HTTPS 강제 설정을 점검하십시오.
🔧 검증 코드
출력된 결과에 해당 플러그인이 포함되어 있다면 설치된 것이며, 설치된 버전이 3.1.2 이하인지 확인이 필요합니다.
wp plugin list --status=active | grep 'json-api-auth'