CVE-2026-42349 (GCVE-0-2026-42349)
Vulnerability from cvelistv5 – Published: 2026-05-11 16:08 – Updated: 2026-05-14 18:19
VLAI
EPSS
VEX
Title
Clerk: Authorization bypass when combining organization, billing, or reverification checks
Summary
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.
Severity
SSVC
Exploitation: poc
Automatable: no
Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-05-14 18:18 UTC
CWE
Assigner
References
1 reference
| URL | Tags |
|---|---|
| https://github.com/clerk/javascript/security/advi… | x_refsource_CONFIRM |
Impacted products
17 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| clerk | javascript |
Affected:
>= 5.22.0, < 5.125.10
Affected: >= 6.0.0, < 6.7.5 |
guessed | |
| @clerk | shared |
Affected:
>= 3.0.0, <= 3.47.4
Affected: >= 4.0.0, <= 4.8.2 |
guessed | |
| @clerk | backend |
Affected:
>= 2.0.0, <= 2.33.2
Affected: >= 3.0.0, <= 3.2.13 |
guessed | |
| @clerk | nextjs |
Affected:
>= 6.0.0, <= 6.39.2
Affected: >= 7.0.0, <= 7.2.3 |
guessed | |
| @clerk | clerk-react |
Affected:
>= 5.9.0, <= 5.61.5
|
guessed | |
| @clerk | react |
Affected:
>= 6.0.0, <= 6.4.2
|
guessed | |
| @clerk | vue |
Affected:
>= 1.0.0, <= 1.17.20
Affected: >= 2.0.0, <= 2.0.15 |
guessed | |
| @clerk | astro |
Affected:
>= 2.0.0, <= 2.17.10
Affected: >= 3.0.0, <= 3.0.17 |
guessed | |
| @clerk | nuxt |
Affected:
>= 1.0.0, <= 1.13.28
Affected: >= 2.0.0, <= 2.2.4 |
guessed | |
| @clerk | clerk-expo |
Affected:
>= 2.2.11, <= 2.19.35
|
guessed | |
| @clerk | expo |
Affected:
>= 3.0.0, <= 3.2.1
|
guessed | |
| @clerk | react-router |
Affected:
>= 0.0.1, <= 2.4.12
Affected: >= 3.0.0, <= 3.1.3 |
guessed | |
| @clerk | tanstack-react-start |
Affected:
>= 0.0.1, <= 0.29.10
Affected: >= 1.0.0, <= 1.1.3 |
guessed | |
| @clerk | chrome-extension |
Affected:
>= 1.3.5, <= 2.9.14
Affected: >= 3.0.0, <= 3.1.14 |
guessed | |
| @clerk | fastify |
Affected:
>= 1.0.42, <= 2.6.30
Affected: >= 3.0.0, <= 3.1.15 |
guessed | |
| @clerk | express |
Affected:
>= 0.1.0, <= 1.7.78
Affected: >= 2.0.0, <= 2.1.5 |
guessed | |
| @clerk | hono |
Affected:
>= 0.0.2, <= 0.1.15
|
guessed |
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-42349",
"options": [
{
"Exploitation": "poc"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-05-14T18:18:41.752602Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-05-14T18:19:38.735Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"references": [
{
"tags": [
"exploit"
],
"url": "https://github.com/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c"
}
],
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "javascript",
"vendor": "clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 5.22.0, \u003c 5.125.10"
},
{
"status": "affected",
"version": "\u003e= 6.0.0, \u003c 6.7.5"
}
]
},
{
"product": "shared",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.47.4"
},
{
"status": "affected",
"version": "\u003e= 4.0.0, \u003c= 4.8.2"
}
]
},
{
"product": "backend",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.33.2"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.2.13"
}
]
},
{
"product": "nextjs",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 6.0.0, \u003c= 6.39.2"
},
{
"status": "affected",
"version": "\u003e= 7.0.0, \u003c= 7.2.3"
}
]
},
{
"product": "clerk-react",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 5.9.0, \u003c= 5.61.5"
}
]
},
{
"product": "react",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 6.0.0, \u003c= 6.4.2"
}
]
},
{
"product": "vue",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.0.0, \u003c= 1.17.20"
},
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.0.15"
}
]
},
{
"product": "astro",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.17.10"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.0.17"
}
]
},
{
"product": "nuxt",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.0.0, \u003c= 1.13.28"
},
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.2.4"
}
]
},
{
"product": "clerk-expo",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 2.2.11, \u003c= 2.19.35"
}
]
},
{
"product": "expo",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.2.1"
}
]
},
{
"product": "react-router",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.0.1, \u003c= 2.4.12"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.1.3"
}
]
},
{
"product": "tanstack-react-start",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.0.1, \u003c= 0.29.10"
},
{
"status": "affected",
"version": "\u003e= 1.0.0, \u003c= 1.1.3"
}
]
},
{
"product": "chrome-extension",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.3.5, \u003c= 2.9.14"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.1.14"
}
]
},
{
"product": "fastify",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.0.42, \u003c= 2.6.30"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.1.15"
}
]
},
{
"product": "express",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.1.0, \u003c= 1.7.78"
},
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.1.5"
}
]
},
{
"product": "hono",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.0.2, \u003c= 0.1.15"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"attackVector": "NETWORK",
"baseScore": 7.6,
"baseSeverity": "HIGH",
"privilegesRequired": "LOW",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "NONE",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-754",
"description": "CWE-754: Improper Check for Unusual or Exceptional Conditions",
"lang": "en",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"cweId": "CWE-863",
"description": "CWE-863: Incorrect Authorization",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T16:08:27.869Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c"
}
],
"source": {
"advisory": "GHSA-w24r-5266-9c3c",
"discovery": "UNKNOWN"
},
"title": "Clerk: Authorization bypass when combining organization, billing, or reverification checks"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-42349",
"datePublished": "2026-05-11T16:08:27.869Z",
"dateReserved": "2026-04-26T13:26:14.515Z",
"dateUpdated": "2026-05-14T18:19:38.735Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-42349",
"date": "2026-09-17",
"epss": "0.00246",
"percentile": "0.16038"
},
"nvd": {
"cve": {
"affected": [
{
"affectedData": [
{
"product": "javascript",
"vendor": "clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 5.22.0, \u003c 5.125.10"
},
{
"status": "affected",
"version": "\u003e= 6.0.0, \u003c 6.7.5"
}
]
},
{
"product": "shared",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.47.4"
},
{
"status": "affected",
"version": "\u003e= 4.0.0, \u003c= 4.8.2"
}
]
},
{
"product": "backend",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.33.2"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.2.13"
}
]
},
{
"product": "nextjs",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 6.0.0, \u003c= 6.39.2"
},
{
"status": "affected",
"version": "\u003e= 7.0.0, \u003c= 7.2.3"
}
]
},
{
"product": "clerk-react",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 5.9.0, \u003c= 5.61.5"
}
]
},
{
"product": "react",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 6.0.0, \u003c= 6.4.2"
}
]
},
{
"product": "vue",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.0.0, \u003c= 1.17.20"
},
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.0.15"
}
]
},
{
"product": "astro",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.17.10"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.0.17"
}
]
},
{
"product": "nuxt",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.0.0, \u003c= 1.13.28"
},
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.2.4"
}
]
},
{
"product": "clerk-expo",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 2.2.11, \u003c= 2.19.35"
}
]
},
{
"product": "expo",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.2.1"
}
]
},
{
"product": "react-router",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.0.1, \u003c= 2.4.12"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.1.3"
}
]
},
{
"product": "tanstack-react-start",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.0.1, \u003c= 0.29.10"
},
{
"status": "affected",
"version": "\u003e= 1.0.0, \u003c= 1.1.3"
}
]
},
{
"product": "chrome-extension",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.3.5, \u003c= 2.9.14"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.1.14"
}
]
},
{
"product": "fastify",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.0.42, \u003c= 2.6.30"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.1.15"
}
]
},
{
"product": "express",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.1.0, \u003c= 1.7.78"
},
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.1.5"
}
]
},
{
"product": "hono",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.0.2, \u003c= 0.1.15"
}
]
}
],
"source": "security-advisories@github.com"
}
],
"configurations": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:clerk:clerk\\/astro:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "30F84DDC-8228-4D7A-BEAC-FDE0487D41DB",
"versionEndExcluding": "2.17.11",
"versionStartIncluding": "2.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/astro:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "92B175FF-5976-481F-9FC3-52C00392997C",
"versionEndExcluding": "3.0.18",
"versionStartIncluding": "3.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/backend:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "42CE4C47-A64E-47F5-8FF2-2855F623CB3E",
"versionEndExcluding": "2.33.3",
"versionStartIncluding": "2.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/backend:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "92B0F10A-B9D0-4AE7-ACE0-DF80D552BB9C",
"versionEndExcluding": "3.2.14",
"versionStartIncluding": "3.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/chrome-extension:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "AD1020C4-8984-48C5-B0BA-3402BC536594",
"versionEndExcluding": "2.9.15",
"versionStartIncluding": "1.3.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/chrome-extension:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "93FD23D3-85FC-4D5A-A3EA-8B7407CC61CA",
"versionEndExcluding": "3.1.15",
"versionStartIncluding": "3.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/clerk-expo:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "24002AC3-72F0-47F4-A707-175A69CD5ECB",
"versionEndExcluding": "2.19.36",
"versionStartIncluding": "2.2.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/clerk-js:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "38BB715E-E178-45DE-B9C2-8EF360B1A9BF",
"versionEndExcluding": "5.125.10",
"versionStartIncluding": "5.22.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/clerk-js:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "D69C1684-8259-418D-8030-9BA5ED83DC69",
"versionEndExcluding": "6.7.5",
"versionStartIncluding": "6.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/clerk-react:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "9F3D0D75-CD5E-4F80-ADD5-36BEA19187EB",
"versionEndExcluding": "5.61.6",
"versionStartIncluding": "5.9.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/expo:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "114A7068-CDA7-4294-8EC1-A4A38E06179D",
"versionEndExcluding": "3.2.2",
"versionStartIncluding": "3.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/express:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "1D670F00-A86F-4157-AACE-2FB37F1D2E74",
"versionEndExcluding": "1.7.79",
"versionStartIncluding": "0.1.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/express:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "5EB164E5-717B-4611-8DFF-517137745E1A",
"versionEndExcluding": "2.1.6",
"versionStartIncluding": "2.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/fastify:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "194D3D4A-19B4-42C2-B119-35F67CEC0AFD",
"versionEndExcluding": "2.6.31",
"versionStartIncluding": "1.0.42",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/fastify:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "636525D8-19DC-47DA-AFE3-58CA0CC5E4E4",
"versionEndExcluding": "3.1.16",
"versionStartIncluding": "3.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/hono:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "9C6F5918-2B3F-4544-9C3E-2D02D147D803",
"versionEndExcluding": "0.1.16",
"versionStartIncluding": "0.0.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/nextjs:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "209A417F-36BB-48E0-A594-17A3D8E452E1",
"versionEndIncluding": "6.39.3",
"versionStartIncluding": "6.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/nextjs:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "6348D1BD-DD97-42E0-A121-4F58DC2BE4DC",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "7.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/nuxt:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "8D6A7B72-1686-4B16-ABB3-6594D926611C",
"versionEndExcluding": "1.13.29",
"versionStartIncluding": "1.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/nuxt:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "F5706271-25D7-4F57-A620-FD2310DB8CB2",
"versionEndExcluding": "2.2.5",
"versionStartIncluding": "2.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/react:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "3ADF13F3-1C39-4766-A0DD-BC40381D306B",
"versionEndExcluding": "6.4.3",
"versionStartIncluding": "6.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/react-router:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "6FD1A00D-D69F-43C8-8055-60C8DA68C97A",
"versionEndExcluding": "2.4.13",
"versionStartIncluding": "0.0.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/react-router:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "4657521F-E4B7-4F7F-83AB-02B1E4F865D6",
"versionEndExcluding": "3.1.4",
"versionStartIncluding": "3.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/shared:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "4A4C4196-ACCC-4115-800F-D4CC704B2DBE",
"versionEndExcluding": "3.47.5",
"versionStartIncluding": "3.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/shared:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "3F3189BA-BCCB-453A-BB4E-72B14E9CB6CA",
"versionEndExcluding": "4.8.3",
"versionStartIncluding": "4.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/tanstack-react-start:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "091BA1A0-5062-4B26-A829-FC9A6D38929D",
"versionEndExcluding": "0.29.11",
"versionStartIncluding": "0.0.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/tanstack-react-start:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "D7971F38-FE69-4A83-9DB8-803FCF3CBAE5",
"versionEndExcluding": "1.1.4",
"versionStartIncluding": "1.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/vue:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "6AC18FE5-605B-4753-8F15-BD67BF67E8C2",
"versionEndExcluding": "1.17.21",
"versionStartIncluding": "1.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:clerk:clerk\\/vue:*:*:*:*:*:node.js:*:*",
"matchCriteriaId": "CA0368CF-A074-45E5-889E-A346F96D7A26",
"versionEndExcluding": "2.0.16",
"versionStartIncluding": "2.0.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"id": "CVE-2026-42349",
"lastModified": "2026-06-17T10:47:43.433",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 8.1,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "LOW",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N",
"version": "3.1"
},
"exploitabilityScore": 2.8,
"impactScore": 5.2,
"source": "nvd@nist.gov",
"type": "Primary"
}
],
"cvssMetricV40": [
{
"cvssData": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"attackVector": "NETWORK",
"availabilityRequirement": "NOT_DEFINED",
"baseScore": 7.6,
"baseSeverity": "HIGH",
"confidentialityRequirement": "NOT_DEFINED",
"exploitMaturity": "NOT_DEFINED",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"privilegesRequired": "LOW",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "NONE",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"source": "security-advisories@github.com",
"type": "Secondary"
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-42349",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-05-14T18:18:41.752602Z",
"version": "2.0.3"
}
}
]
},
"published": "2026-05-11T17:16:33.147",
"references": [
{
"source": "security-advisories@github.com",
"tags": [
"Mitigation",
"Vendor Advisory"
],
"url": "https://github.com/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c"
},
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"tags": [
"Mitigation",
"Vendor Advisory"
],
"url": "https://github.com/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c"
}
],
"sourceIdentifier": "security-advisories@github.com",
"vulnStatus": "Analyzed",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-754"
},
{
"lang": "en",
"value": "CWE-863"
}
],
"source": "security-advisories@github.com",
"type": "Secondary"
}
]
}
},
"redhat_vex": {
"current_release_date": "2026-05-14T19:58:13+00:00",
"cve": "CVE-2026-42349",
"id": "CVE-2026-42349",
"initial_release_date": "2026-01-01T00:00:00+00:00",
"product_status:known_not_affected": "1",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "Clerk: Authorization bypass when combining organization, billing, or reverification checks",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-42349.json",
"version": "3"
},
"vulnrichment": {
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-42349",
"options": [
{
"Exploitation": "poc"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-05-14T18:18:41.752602Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-05-14T18:19:17.030Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"references": [
{
"tags": [
"exploit"
],
"url": "https://github.com/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c"
}
],
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "javascript",
"vendor": "clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 5.22.0, \u003c 5.125.10"
},
{
"status": "affected",
"version": "\u003e= 6.0.0, \u003c 6.7.5"
}
]
},
{
"product": "shared",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.47.4"
},
{
"status": "affected",
"version": "\u003e= 4.0.0, \u003c= 4.8.2"
}
]
},
{
"product": "backend",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.33.2"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.2.13"
}
]
},
{
"product": "nextjs",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 6.0.0, \u003c= 6.39.2"
},
{
"status": "affected",
"version": "\u003e= 7.0.0, \u003c= 7.2.3"
}
]
},
{
"product": "clerk-react",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 5.9.0, \u003c= 5.61.5"
}
]
},
{
"product": "react",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 6.0.0, \u003c= 6.4.2"
}
]
},
{
"product": "vue",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.0.0, \u003c= 1.17.20"
},
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.0.15"
}
]
},
{
"product": "astro",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.17.10"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.0.17"
}
]
},
{
"product": "nuxt",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.0.0, \u003c= 1.13.28"
},
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.2.4"
}
]
},
{
"product": "clerk-expo",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 2.2.11, \u003c= 2.19.35"
}
]
},
{
"product": "expo",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.2.1"
}
]
},
{
"product": "react-router",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.0.1, \u003c= 2.4.12"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.1.3"
}
]
},
{
"product": "tanstack-react-start",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.0.1, \u003c= 0.29.10"
},
{
"status": "affected",
"version": "\u003e= 1.0.0, \u003c= 1.1.3"
}
]
},
{
"product": "chrome-extension",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.3.5, \u003c= 2.9.14"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.1.14"
}
]
},
{
"product": "fastify",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.0.42, \u003c= 2.6.30"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c= 3.1.15"
}
]
},
{
"product": "express",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.1.0, \u003c= 1.7.78"
},
{
"status": "affected",
"version": "\u003e= 2.0.0, \u003c= 2.1.5"
}
]
},
{
"product": "hono",
"vendor": "@clerk",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.0.2, \u003c= 0.1.15"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"attackVector": "NETWORK",
"baseScore": 7.6,
"baseSeverity": "HIGH",
"privilegesRequired": "LOW",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "NONE",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-754",
"description": "CWE-754: Improper Check for Unusual or Exceptional Conditions",
"lang": "en",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"cweId": "CWE-863",
"description": "CWE-863: Incorrect Authorization",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T16:08:27.869Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c"
}
],
"source": {
"advisory": "GHSA-w24r-5266-9c3c",
"discovery": "UNKNOWN"
},
"title": "Clerk: Authorization bypass when combining organization, billing, or reverification checks"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-42349",
"datePublished": "2026-05-11T16:08:27.869Z",
"dateReserved": "2026-04-26T13:26:14.515Z",
"dateUpdated": "2026-05-14T18:19:38.735Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.
Loading…