🔍 CVE-2026-62387

7.1
CVSS Score
HIGH
2026-07-17
2026-10-24 20:10
✅ 완료

🇰🇷 한글 설명

Grav API 플러그인(1.0.0-rc.16 이전)은 모든 응답(인증된 엔드포인트와 preflight OPTIONS 응답 포함)에 기본적으로 Access-Control-Allow-Origin: * 헤더를 설정합니다. 이 플러그인은 쿠키 대신 JavaScript로 설정되는 Authorization 및 X-API-Token 헤더로 인증 정보를 받기 때문에, 유효한 액세스 토큰을 탈취한 공격자는 악성 웹사이트에서 해당 토큰 사용자 권한으로 민감한 데이터를 읽고 쓰기 작업을 수행할 수 있습니다.

💡 쉬운 설명

Grav API 플러그인이 어느 웹사이트에서든 접근을 허용하도록 설정되어 있어, 사용자의 인증 토큰이 유출되면 악성 사이트가 사용자 대신 API를 호출할 수 있습니다. 1.0.0-rc.16 이상으로 업데이트하면 해결됩니다.

🇺🇸 원문 (English)

The Grav API plugin (getgrav/grav-plugin-api) before 1.0.0-rc.16 shipped Access-Control-Allow-Origin: * as its default CORS configuration on all responses, including authenticated endpoints and preflight (OPTIONS) responses. Because the plugin accepts credentials via the Authorization and X-API-Token headers (set programmatically by JavaScript rather than via cookies), an attacker who obtains a valid access token (e.g., via log leakage, Referer headers, browser history, or network capture) can issue fully authenticated cross-origin requests from any malicious website to read sensitive data and perform write operations as the token's user. Fixed in 1.0.0-rc.16.

📍 영향받는 시스템

getgrav/grav-plugin-api 1.0.0-rc.16 미만 버전을 사용하는 Grav CMS 사이트

⚔️ 공격 벡터

공격자가 액세스 토큰을 획득(로그 유출, Referer, 브라우저 기록, 네트워크 캡처 등)한 뒤, 악성 웹페이지에서 교차 출처 요청으로 인증된 API 호출을 수행

🛡️ 대응 방법

grav-plugin-api를 1.0.0-rc.16 이상으로 업데이트하고, 노출된 액세스 토큰을 폐기 후 재발급

🔧 검증 코드

출력에 Access-Control-Allow-Origin: * 설정이 남아 있으면 취약하고, 설정이 없거나 특정 출처만 지정되어 있으면 수정된 것입니다. 검색 결과가 없다면 플러그인 경로를 직접 확인하세요.

Shell / Script
grep -rn "Access-Control-Allow-Origin" $(find / -path '*grav*' -name 'api*' -type d 2>/dev/null) 2>/dev/null | head -20

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N

💻 영향받는 소프트웨어

Oracle Java SE