🔍 CVE-2026-42349

8.1
CVSS Score
HIGH
2026-05-11
2026-10-26 18:10
✅ 완료

🇰🇷 한글 설명

Clerk JavaScript SDK의 has(), auth.protect() 등 권한 검사 함수가 특정 조합(재인증 검사와 role/permission/feature/plan의 결합, 또는 billing 검사와 role/permission의 결합)에서 실제로는 false여야 할 때 true를 반환할 수 있습니다. 이로 인해 요구된 모든 조건을 충족하지 않은 사용자가 보호된 작업을 수행할 수 있습니다. @clerk/clerk-js 5.125.10 및 6.7.5에서 수정되었습니다.

💡 쉬운 설명

사용자가 모든 권한 조건을 충족하지 않아도 접근이 허용될 수 있는 인증 버그입니다. 특정 조건 조합에서 권한 확인 결과가 잘못 통과됩니다.

🇺🇸 원문 (English)

Clerk JavaScript is the official JavaScript repository for Clerk authentication. has(), auth.protect(), and related authorization predicates in @clerk/shared, @clerk/nextjs, @clerk/backend, and other framework SDKs can return true for certain combined authorization checks when the result should be false, allowing a gated action to proceed for a user who does not satisfy the full set of requested conditions. This call shape can be bypassed if certain conditions are met: a has() or auth.protect() call that combines a reverification check with any of role, permission, feature, or plan, or that combines a billing check (feature or plan) with a role or permission check. This vulnerability is fixed in @clerk/clerk-js 5.125.10 and 6.7.5.

📍 영향받는 시스템

@clerk/clerk-js 5.125.10 미만 및 6.7.5 미만 버전, 그리고 @clerk/shared, @clerk/nextjs, @clerk/backend 등 해당 SDK를 사용하는 프레임워크 연동 패키지

⚔️ 공격 벡터

재인증 또는 billing 검사를 role/permission/feature/plan과 결합한 has()/auth.protect() 호출이 있는 엔드포인트에 대해, 일부 조건만 충족한 인증 사용자가 접근을 시도하여 보호된 작업을 수행

🛡️ 대응 방법

@clerk/clerk-js를 5.125.10 이상 또는 6.7.5 이상으로 업데이트하고 관련 SDK 패키지도 함께 최신 버전으로 갱신

🔧 검증 코드

출력된 버전이 5.125.10 또는 6.7.5 미만이면 취약하며, 그 이상이면 패치된 버전입니다 (패키지가 없으면 출력이 없음)

Shell / Script
npm ls @clerk/clerk-js 2>/dev/null | grep clerk-js

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N

💻 영향받는 소프트웨어

Oracle Java SE