🇰🇷 한글 설명
dataCycle-CORE 25.07.3 이하 버전에서 브라우저 로그인(/users/sign_in)과 JSON 로그인 API(/api/v4/auth/login) 모두 비밀번호 시도 횟수 제한이 없습니다. Devise의 lockable 모듈이 활성화되어 있으나 잠금 및 해제 전략이 명시적으로 비활성화되어 있고, 요청 제한(rate limiting) 계층도 없어 온라인 비밀번호 추측 공격에 취약합니다. 26.06.08 버전에서 패치되었습니다.
💡 쉬운 설명
공격자가 로그인 실패에 제한 없이 비밀번호를 계속 시도할 수 있어, 약한 비밀번호를 쓰는 사용자 계정이 탈취될 수 있습니다. 특히 API 로그인은 자동화 도구로 쉽게 악용될 수 있습니다.
🇺🇸 원문 (English)
dataCycle is a data management system for centrally storing, managing, searching, finding, and distributing data. In dataCycle-CORE, the module handling core processing and framework rules, before and including version 25.07.3, the application accepts unlimited password guesses against both the browser login flow and the JSON login endpoint. The source code enables Devise's `:lockable` module on the user model but explicitly disables both lock and unlock strategies, and no request throttling or rate-limiting layer was identified in the Rails code. This creates a direct online password-guessing risk:
- valid user accounts can be attacked continuously without temporary lockout
- the same weakness is reachable through both `/users/sign_in` and `/api/v4/auth/login`
- successful guessing yields a normal session cookie in the HTML flow or a fresh JWT in the API flow
- the API endpoint is especially attractive for automation because it requires no CSRF token
This has been patched in version 26.06.08.
📍 영향받는 시스템
dataCycle-CORE 25.07.3 이하 버전
⚔️ 공격 벡터
로그인 엔드포인트(/users/sign_in, /api/v4/auth/login)에 자동화된 도구로 무제한 비밀번호 대입 공격 수행
🛡️ 대응 방법
dataCycle-CORE를 26.06.08 이상 버전으로 업그레이드하고, 로그인 시도 제한 및 계정 잠금 정책을 활성화하세요.
🔧 검증 코드
출력된 버전이 26.06.08 미만이면 취약하며, 그 이상이면 패치가 적용된 것입니다. 버전 정보가 나오지 않으면 설치 경로를 직접 확인해야 합니다.
cat Gemfile.lock 2>/dev/null | grep -i datacycle; grep -rn 'VERSION' $(find . -name 'version.rb' -path '*datacycle*' 2>/dev/null | head -1) 2>/dev/null