🇰🇷 한글 설명
4gaBoards 3.3.9 미만 버전에서 인증된 사용자가 API를 통해 SSO 관련 식별자 정보를 임의로 수정할 수 있는 취약점이 존재합니다. 공격자는 피해자의 SSO 식별자를 자신의 계정에 할당하여 피해자가 공격자의 계정으로 로그인하게 만들고, 피해자의 데이터를 탈취하거나 접근할 수 있습니다.
💡 쉬운 설명
로그인 정보를 조작하여 다른 사람의 계정으로 연결되게 만드는 보안 결함입니다. 이를 통해 공격자는 피해자가 작성한 프로젝트나 중요한 데이터에 몰래 접근할 수 있습니다.
🇺🇸 원문 (English)
4gaBoards is a boards system for realtime project management. Prior to 3.3.9, 4gaBoards allows an authenticated user to modify ssoGoogleId, ssoGoogleEmail, ssoGithubId, ssoGithubUsername, ssoGithubEmail, ssoMicrosoftId, ssoMicrosoftEmail, ssoOidcId, and ssoOidcEmail through PATCH /api/users/:id. The whitelist in server/api/controllers/users/update.js mass assigns these backend-managed identity attributes from user input. An attacker can place a victim's provider identifier on an attacker-controlled account, causing the default lookup in helpers such as server/api/helpers/users/get-create-one-for-github-sso.js to match the victim's first SSO login to the attacker's account before the email-linkage flow runs. The victim is logged into the attacker-controlled account, and projects, boards, or data the victim creates remain accessible through the attacker's original local credentials. This issue is fixed in version 3.3.9.
📍 영향받는 시스템
4gaBoards 3.3.9 미만 모든 버전
⚔️ 공격 벡터
PATCH /api/users/:id API를 이용한 SSO 식별자(ssoGoogleId 등)의 매스 어사인먼트(Mass Assignment) 공격
🛡️ 대응 방법
4gaBoards를 최신 버전인 3.3.9 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 패키지 버전이 3.3.9 미만인지 확인하여 취약 여부를 판단합니다.
npm list 4ga-boards || echo 'Package not found via npm'