🇰🇷 한글 설명
Concrete CMS 9.5.3 미만 버전에서 사용자 검증 해시를 처리할 때 해시의 용도(타입)를 검증하지 않는 취약점이 발견되었습니다. 이로 인해 이메일 인증용 해시를 비밀번호 변경에 사용하거나, 비밀번호 재설정 해시를 계정 활성화에 사용하는 등 해시의 용도를 오용할 수 있습니다. 공격자가 다른 경로로 해시를 탈취했을 경우, 해당 해시를 통해 계정 권한을 탈취하거나 설정을 변경할 수 있어 피해가 증폭됩니다.
💡 쉬운 설명
서로 다른 용도로 쓰이는 '인증 코드'들이 구분 없이 사용되어, 잘못된 용도로 코드를 입력해도 통과되는 문제입니다. 예를 들어, 회원가입 확인용 코드를 비밀번호 바꾸는 데 써도 시스템이 이를 허용해 버리는 상황입니다.
🇺🇸 원문 (English)
Concrete CMS below 9.5.3 stores user validation hashes for multiple purposes (email/registration validation, password reset, and persistent login) in a single table with a type column, but the redemption path resolves a hash by value alone and does not verify its type. As a result, a hash issued for one purpose can be redeemed for another: a long-lived registration hash (60-day expiry) can be submitted to the password-change endpoint to set a new password on the target account, and a password-reset hash can be submitted to the email-validation endpoint to activate an account. Exploitation requires the attacker to first obtain a valid hash through a separate channel (for example email interception, log exposure, or SSRF against an internal mail relay), so the flaw amplifies the impact of any hash disclosure rather than creating a standalone entry point. The Concrete CMS security team gave this vulnerability a CVSS v4.0 score of 6.3 with vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N. Thanks Yonatan Drori from Tenzai for reporting.
📍 영향받는 시스템
Concrete CMS 9.5.3 미만 모든 버전
⚔️ 공격 벡터
탈취한 유효한 해시를 다른 용도의 엔드포인트(비밀번호 변경 또는 이메일 검증)에 입력하여 인증 우회
🛡️ 대응 방법
Concrete CMS를 최신 보안 패치가 적용된 9.5.3 이상의 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 정보가 9.5.3 미만인지 확인하십시오.
composer show concrete/concretecms | grep 'versions'