DEEP DIVE REPORT

CVE-2026-67330 대응 가이드: better-auth SCIM 토큰 발급 권한 우회와 계정 탈취 위험

SecurityDesk
2026.08.02 조회 3

better-auth의 SCIM 플러그인(@better-auth/scim)에 CVSS 4.0 기준 9.4(Critical) 등급의 권한 우회 취약점이 발견되었다. 인증된 사용자가 타 사용자의 계정을 읽고 수정하고 삭제하며 완전히 탈취할 수 있다. 엔터프라이즈 SSO·SCIM 연동 환경에서 특히 심각한 영향을 준다.

위협 요약

항목 내용
CVE CVE-2026-67330
CVSS 4.0 9.4 Critical
CVSS 벡터 CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
CWE CWE-20, CWE-639, CWE-862
영향 버전 1.4.0-beta.27 ~ 1.6.21, 1.7.0-beta.0 ~ 1.7.0-beta.9
수정 버전 1.6.22, 1.7.0-beta.10
패치 PR #10242 (merged July 4, 2026)

PR:L임에도 9.4는 Scope가 확장되어 타 계정과 세션까지 통제 가능하기 때문이다.

취약점 개요

better-auth의 SCIM 플러그인은 provider 설정과 계정 소유권 확인에 동일한 논리적 provider ID를 사용한다. 토큰 발급 시 기존 SSO·SAML·OIDC·Social provider ID와 중복되는지 검증하지 않아, 인증된 사용자가 충돌하는 ID를 가진 SCIM 토큰을 발급하면 타 계정 행을 "SCIM 관리 계정"으로 오인하게 만든다.

핵심 취약점은 다음 4가지다.

첫째, 토큰 발급 시 provider ID 충돌 검사 부재(CWE-639). built-in provider나 SSO provider ID를 제외하지 않는다.

둘째, 동일 providerId로 타 계정 조작. 충돌 토큰으로 타 사용자의 조회·수정·삭제가 가능하며, 글로벌 프로필과 이메일 필드 재작성도 가능하다.

셋째, active:false 무시. SCIM active 속성이 스키마에서 누락되어 IdP의 탈퇴 신호가 처리되지 않아 퇴사자가 접근 권한을 유지할 수 있다.

넷째, 이메일 고유성 검증 부재. PUT/PATCH 시 이메일 고유성 검사를 수행하지 않아 UNIQUE 인덱스 없는 어댑터에서 이메일을 다른 사용자에게 재할당할 수 있다.

기술적 분석

SCIM 플러그인은 @better-auth/scim을 통해 제공되며, better-auth의 SCIM 연동 계층에서 사용자 프로비저닝, 동기화, 토큰 관리를 담당한다. 토큰 발급 시 provider ID의 고유성 검증이 누락되었고, 이는 bearer middleware에서 토큰의 providerId로 account 행을 조회할 때 다른 provider에 속한 계정까지 SCIM 관리 대상으로 노출하는 원인이 된다.

패치(PR #10242)는 다음을 적용했다.

  • 토큰 발급 시 충돌 provider ID 거부
  • SCIM 삭제 범위 제한 (글로벌 사용자 삭제 방지)
  • active:false를 강제 비활성화로 매핑, 세션 무효화
  • 이메일 고유성 검증 추가, 변경 시 emailVerified 초기화

영향 범위

@better-auth/scim을 사용하며 인증된 사용자의 토큰 생성을 허용하는 모든 애플리케이션이 직접 영향 받는다. Okta, Azure AD 등 IdP와 SCIM 연동 조직과 HR 자동 프로비저닝 파이프라인이 간접 영향 받으며, active:false에 의존하는 퇴사자 자동 탈퇴 환경에서는 인시던트 가능성이 있다.

대응 방안

즉시 (0~24시간)

  1. 패치 적용 — 1.6.22 또는 1.7.0-beta.10 이상으로 업그레이드
  2. 워크어라운드 — canGenerateToken에서 충돌 provider ID를 명시적으로 거부하고 토큰 생성 권한을 관리자 그룹으로 제한
  3. Provider 검토 — 충돌하는 scimProvider 행을 제거
  4. 비활성화 검증 — active:false 신호를 보냈던 사용자의 접근 권한을 수동 확인

단기 (1주 이내)

  1. 토큰 감사 — 충돌 가능성 점검, 불필요한 토큰 회수
  2. 이메일 검증 — SCIM을 통해 변경된 이메일과 emailVerified 불일치 계정 재검증

중기 (1개월 이내)

토큰 유효기간 적용과 최소 권한 범위 제한. SCIM과 계정 provider ID를 분리된 네임스페이스로 관리. active 상태 일관성 검증 자동화.

참고문헌

  1. NVD — CVE-2026-67330
    https://nvd.nist.gov/vuln/detail/CVE-2026-67330

  2. GitHub Security Advisory — GHSA-rjg6-39jm-rgg4
    https://github.com/better-auth/better-auth/security/advisories/GHSA-rjg6-39jm-rgg4

  3. VulnCheck Advisory
    https://www.vulncheck.com/advisories/better-auth-scim-beta-27-through-account-takeover-via-provider-id-collision

  4. GitHub Release v1.6.22
    https://github.com/better-auth/better-auth/releases/tag/v1.6.22

  5. Patch PR #10242
    https://github.com/better-auth/better-auth/pull/10242

  6. SCIM 2.0 (RFC 7644)
    https://datatracker.ietf.org/doc/html/rfc7644


본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.

로그인

아직 댓글이 없습니다.

첫 번째 댓글을 작성해보세요!

IT 도구 서랍

→ Unix: 2025-01-15T09:30:00
→ 날짜: 1736934600

→ ASCII: ABC
→ 문자: 65 66 67

ASCII 코드표 — 클릭하면 입력란에 추가

DecHex약어설명
DecHex문자
DecHex문자

→ 유니코드: 홍길동
→ 문자: \ud64d\uae38\ub3d9