🇰🇷 한글 설명
Coop은 ROOST에서 만든 오픈소스 리뷰 및 모더레이션 도구입니다. 1.0.2 이전 버전에서는 resetPasswordForToken이 비밀번호를 변경하면서도 데이터베이스에 저장된 기존 세션을 무효화하지 않습니다. 이로 인해 비밀번호를 탈취한 공격자의 세션이 정상 사용자가 비밀번호를 재설정한 뒤에도 최대 30일 동안 유지됩니다.
💡 쉬운 설명
누군가 여러분의 비밀번호를 알아내 이미 로그인해 두었다면, 비밀번호를 바꿔도 그 사람의 접속이 바로 끊어지지 않습니다. 세션이 만료될 때까지 계정이 공격자 손에 남아 있을 수 있습니다.
🇺🇸 원문 (English)
Coop is an open source review and moderation tool from ROOST. Prior to 1.0.2, `resetPasswordForToken` updates the password row without invalidating database-backed sessions. An attacker who has acquired a password and established a session retains access even after the legitimate user resets the password, leaving the compromised account under attacker control until the session expires at its `30-day` maximum age. This issue is fixed in version 1.0.2.
📍 영향받는 시스템
ROOST Coop 1.0.2 이전 버전
⚔️ 공격 벡터
탈취한 비밀번호로 세션을 생성한 뒤, 피해자가 비밀번호를 재설정해도 기존 세션을 계속 사용해 계정에 접근
🛡️ 대응 방법
Coop을 1.0.2 이상으로 업데이트하고, 의심되는 계정의 기존 세션을 수동으로 모두 무효화
🔧 검증 코드
출력된 version 값이 1.0.2 미만이면 취약한 버전이므로 업데이트가 필요하고, 1.0.2 이상이면 패치가 적용된 것입니다.
cat package.json 2>/dev/null | grep -E '"version"'