🇰🇷 한글 설명
Strapi의 @strapi/core 패키지 5.10.3 미만 버전에서 bcryptjs를 사용한 비밀번호 해싱 시 최대 길이를 제한하지 않는 취약점이 발견되었습니다. bcryptjs는 72바이트를 초과하는 데이터를 무시하고 잘라내기 때문에, 72바이트 이상의 비밀번호를 설정하더라도 앞부분 72바이트만으로 인증이 가능해져 보안 엔트로피가 감소합니다.
💡 쉬운 설명
비밀번호를 아주 길게 만들어도 실제로는 앞부분의 일부만 사용되어 보안 효과가 떨어지는 문제입니다. 공격자가 앞부분의 비밀번호만 알아내도 계정에 접속할 수 있는 위험이 있습니다.
🇺🇸 원문 (English)
Strapi is an open source headless CMS. The @strapi/core package before version 5.10.3 does not enforce a maximum password length when using bcryptjs for password hashing. Bcryptjs ignores any bytes beyond 72, so passwords longer than 72 bytes are silently truncated. A user can create an account with a password exceeding 72 bytes and later authenticate with only the first 72 bytes. This reduces the effective entropy of overlong passwords and may mislead users who believe characters beyond 72 bytes are required, creating a low likelihood of unintended authentication if an attacker can obtain or guess the truncated portion. Long over‑length inputs can also impose unnecessary processing overhead. The issue is fixed in version 5.10.3. No known workarounds exist.
📍 영향받는 시스템
@strapi/core package version < 5.10.3
⚔️ 공격 벡터
72바이트를 초과하는 긴 비밀번호를 사용하여 계정을 생성한 후, 잘려나간 앞부분의 비밀번호만 입력하여 인증을 시도함
🛡️ 대응 방법
@strapi/core 패키지를 5.10.3 버전 이상으로 업데이트
🔧 검증 코드
출력된 결과에서 @strapi/core의 버전이 5.10.3 미만인지 확인