🇰🇷 한글 설명
PolarLearn 0-PRERELEASE-15 및 이전 버전에서 POST /api/v1/auth/sign-in 요청 시 비밀번호를 검증하기 전에 차단된 계정에 대해 유효한 세션을 생성하는 취약점이 존재합니다. 생성된 세션은 인증이 필요한 API 경로에서 그대로 수용되어, 차단된 사용자의 데이터에 접근하거나 해당 계정으로 인증된 동작을 수행할 수 있게 합니다.
💡 쉬운 설명
로그인 과정에서 비밀번호를 확인하기도 전에 차단된 계정이라도 로그인 상태를 만들어버리는 보안 결함입니다. 이를 통해 차단된 사용자의 정보를 훔쳐보거나 차단된 계정인 것처럼 활동할 수 있습니다.
🇺🇸 원문 (English)
PolarLearn is a free and open-source learning program. In 0-PRERELEASE-15 and earlier, POST /api/v1/auth/sign-in creates a valid session for banned accounts before verifying the supplied password. That session is then accepted across authenticated /api routes, enabling account data access and authenticated actions as the banned user.
📍 영향받는 시스템
PolarLearn 0-PRERELEASE-15 및 그 이전 버전
⚔️ 공격 벡터
인증 API(/api/v1/auth/sign-in)를 통한 차단된 계정의 세션 탈취 및 권한 오용
🛡️ 대응 방법
비밀번호 검증이 완료된 후에만 세션을 생성하도록 로직을 수정하고, 세션 생성 전 계정 차단 여부를 먼저 확인해야 합니다.
🔧 검증 코드
비밀번호가 틀리거나 차단된 계정임에도 불구하고 응답에 세션 ID나 토큰이 포함되어 있다면 취약한 상태입니다.
curl -s -X POST http://<target-ip>/api/v1/auth/sign-in -d '{"username":"banned_user", "password":"any"}' | grep -E 'session_id|token'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
💻 영향받는 소프트웨어
IBM Security Verify Access