🇰🇷 한글 설명
Craft CMS 5.0.0부터 5.10.12 버전에서 데이터베이스 연결 실패 시 시스템이 미설치 상태로 오인하여 익명 설치 프로세스가 활성화되는 취약점입니다. 공격자가 유효한 세션과 CSRF 토큰을 보유한 경우, 특정 변수명을 입력하여 보안 키, 데이터베이스 자격 증명, 환경 변수 등 민감한 정보를 탈취할 수 있습니다.
💡 쉬운 설명
데이터베이스에 일시적인 문제가 생겼을 때, 웹사이트가 마치 처음 설치하는 상태처럼 동작하여 보안 정보가 유출될 수 있는 문제입니다. 공격자가 미리 준비한 세션을 이용해 시스템의 비밀번호나 중요한 설정값을 알아낼 수 있습니다.
🇺🇸 원문 (English)
Craft CMS 5.0.0 through 5.10.12 treats a database connection failure as meaning that Craft is not installed, which makes anonymous installer actions — including install/validate-site — reachable on an installed production site whenever PHP remains available but the configured MySQL endpoint does not. The action accepts a site name, serializes it through Site::getName(), and expands ${NAME} expressions using App::env(). An unauthenticated attacker who obtained a guest session cookie and matching CSRF token before the outage and whose session remains valid during it can submit a predictable variable name (for example Craft's conventional CRAFT_SECURITY_KEY) and receive its value, disclosing Craft secrets, process environment variables, $_SERVER entries, or PHP constants such as the security key, database credentials, or API keys. The issue requires an independently occurring database outage; the vulnerability itself provides no way to induce it. Fixed in 5.10.13.
📍 영향받는 시스템
Craft CMS 5.0.0 ~ 5.10.12
⚔️ 공격 벡터
데이터베이스 장애 발생 시 유효한 세션/CSRF 토큰을 가진 공격자가 설치 프로세스에 변수명을 주입하여 정보 탈취
🛡️ 대응 방법
Craft CMS를 5.10.13 이상 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 5.10.13 미만인 경우 해당 취약점에 노출된 상태입니다.
composer show craft/cms | grep 'versions'