🇰🇷 한글 설명
4ga Boards는 실시간 프로젝트 관리를 위한 보드 시스템입니다. 3.3.5 이전 버전에서는 로그인 엔드포인트(POST /api/access-tokens)의 응답 시간 차이(타이밍 사이드 채널)를 통해 사용자 계정 존재 여부를 열거할 수 있습니다. 존재하지 않는 사용자는 약 17ms, 존재하는 사용자에게 잘못된 비밀번호를 입력하면 bcrypt 연산으로 약 74ms가 걸려 이 차이를 이용할 수 있습니다. 이 취약점은 3.3.5 버전에서 수정되었습니다.
💡 쉬운 설명
공격자가 로그인 시도의 응답 속도 차이를 관찰하면 어떤 이메일이나 아이디가 실제로 가입되어 있는지 알아낼 수 있습니다. 이렇게 알아낸 계정 정보는 후속 비밀번호 공격이나 피싱에 악용될 수 있습니다.
🇺🇸 원문 (English)
4ga Boards is a boards system for realtime project management. Prior to 3.3.5, 4ga Boards is vulnerable to user enumeration via a timing side-channel in the login endpoint (POST /api/access-tokens). When an invalid username/email is provided, the server responds immediately (~17ms average). When a valid username/email is provided with an incorrect password, the server first performs a bcrypt.compareSync() operation (~74ms average) before responding. This ~4.4× timing difference is trivially detectable even over a network — a single request suffices. This vulnerability is fixed in 3.3.5.
📍 영향받는 시스템
4ga Boards 3.3.5 미만 버전
⚔️ 공격 벡터
네트워크로 로그인 API에 요청을 보내 응답 시간 차이를 측정하여 유효한 사용자 계정을 식별
🛡️ 대응 방법
4ga Boards를 3.3.5 이상 버전으로 업데이트
🔧 검증 코드
출력된 version 값이 3.3.5 미만이면 취약, 3.3.5 이상이면 패치 완료
cat /path/to/4ga-boards/package.json 2>/dev/null | grep '"version"'