FKIE_CVE-2026-42349
Vulnerability from fkie_nvd - Published: 2026-05-11 17:16 - Updated: 2026-06-01 16:33
Severity
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.
References
| URL | Tags | ||
|---|---|---|---|
| security-advisories@github.com | https://github.com/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c | Mitigation, Vendor Advisory | |
| 134c704f-9b21-4f2e-91b3-4a467353bcc0 | https://github.com/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c | Mitigation, Vendor Advisory |
Impacted products
{
"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-01T16:33:43.980",
"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"
}
]
},
"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"
}
]
}
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…
Loading…