Vulnerabilities in pkg:npm/@clerk/nextjs

PACKAGE
Advisory Identifier: GHSA-w24r-5266-9c3c
Advisory Summary

CVE-2026-42349 is a HIGH (CVSS 8.1) clerk has an authorization bypass vulnerability (CWE-863: Incorrect Authorization) affecting @clerk/clerk js libraries in the npm ecosystem. The issue involves clerk has an authorization bypass when combining organization, billing, or reverification checks. Remediation is available by upgrading affected packages to version 6.7.5, 3.47.5, 4.8.3, 2.33.3, 3.2.14, 6.39.3, 7.2.4, 5.125.10, 5.61.6, 6.4.3, 1.17.21, 2.0.16, 2.17.11, 3.0.18, 1.13.29, 2.2.5, 2.19.36, 3.2.2, 2.4.13, 3.1.4, 0.29.11, 1.1.4, 2.9.15, 3.1.15, 2.6.31, 3.1.16, 1.7.79, 2.1.6, 0.1.16.

4 Known Advisory Record(s)
Package Vulnerability Intelligence

pkg:npm/@clerk/nextjs

4 Known Advisory Record(s)

Vulnerability advisories affecting package pkg:npm/@clerk/nextjs. Select an advisory below to view technical details or fixes.

Advisory ID CVE / NVD Severity Summary
GHSA-w24r-5266-9c3c CVE-2026-42349 HIGH Clerk has an authorization bypass when combining organization, billing, or reverification checks
GHSA-vqx2-fgx2-5wq9 CVE-2026-41248 CRITICAL Official Clerk JavaScript SDKs: Middleware-based route protection bypass
GHSA-9mp4-77wg-rwx9 CVE-2025-53548 HIGH @clerk/backend Performs Insufficient Verification of Data Authenticity
GHSA-q6w5-jg5q-47vg CVE-2024-22206 CRITICAL @clerk/nextjs auth() and getAuth() methods vulnerable to insecure direct object reference (IDOR)

CVE-2026-42349 at a Glance

CVE Identifier CVE-2026-42349
GHSA Identifier GHSA-w24r-5266-9c3c
Severity HIGH
CVSS v3.1 Base Score 8.1
CWE Classification CWE-863: Incorrect Authorization
Affected Product @clerk/clerk js
Package Ecosystem npm
Published Date
Last Updated

Security Impact

CVSS: 8.1

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required Low (PR:L)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality High (C:H)
Integrity High (I:H)
Availability None (A:N)

How to Fix CVE-2026-42349

To remediate this vulnerability, upgrade all affected @clerk/clerk js dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

@clerk/clerk-js fixed: 6.7.5
npm install @clerk/clerk-js@6.7.5
@clerk/shared fixed: 3.47.5
npm install @clerk/shared@3.47.5
@clerk/shared fixed: 4.8.3
npm install @clerk/shared@4.8.3
@clerk/backend fixed: 2.33.3
npm install @clerk/backend@2.33.3
@clerk/backend fixed: 3.2.14
npm install @clerk/backend@3.2.14
@clerk/nextjs fixed: 6.39.3
npm install @clerk/nextjs@6.39.3
@clerk/nextjs fixed: 7.2.4
npm install @clerk/nextjs@7.2.4
@clerk/clerk-js fixed: 5.125.10
npm install @clerk/clerk-js@5.125.10
@clerk/clerk-react fixed: 5.61.6
npm install @clerk/clerk-react@5.61.6
@clerk/react fixed: 6.4.3
npm install @clerk/react@6.4.3
@clerk/vue fixed: 1.17.21
npm install @clerk/vue@1.17.21
@clerk/vue fixed: 2.0.16
npm install @clerk/vue@2.0.16
@clerk/astro fixed: 2.17.11
npm install @clerk/astro@2.17.11
@clerk/astro fixed: 3.0.18
npm install @clerk/astro@3.0.18
@clerk/nuxt fixed: 1.13.29
npm install @clerk/nuxt@1.13.29
@clerk/nuxt fixed: 2.2.5
npm install @clerk/nuxt@2.2.5
@clerk/clerk-expo fixed: 2.19.36
npm install @clerk/clerk-expo@2.19.36
@clerk/expo fixed: 3.2.2
npm install @clerk/expo@3.2.2
@clerk/react-router fixed: 2.4.13
npm install @clerk/react-router@2.4.13
@clerk/react-router fixed: 3.1.4
npm install @clerk/react-router@3.1.4
@clerk/tanstack-react-start fixed: 0.29.11
npm install @clerk/tanstack-react-start@0.29.11
@clerk/tanstack-react-start fixed: 1.1.4
npm install @clerk/tanstack-react-start@1.1.4
@clerk/chrome-extension fixed: 2.9.15
npm install @clerk/chrome-extension@2.9.15
@clerk/chrome-extension fixed: 3.1.15
npm install @clerk/chrome-extension@3.1.15
@clerk/fastify fixed: 2.6.31
npm install @clerk/fastify@2.6.31
@clerk/fastify fixed: 3.1.16
npm install @clerk/fastify@3.1.16
@clerk/express fixed: 1.7.79
npm install @clerk/express@1.7.79
@clerk/express fixed: 2.1.6
npm install @clerk/express@2.1.6
@clerk/hono fixed: 0.1.16
npm install @clerk/hono@0.1.16
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

npm ls @clerk/clerk-js

How to Check if You Are Affected

To determine whether your Node.js application is affected by CVE-2026-42349, inspect your project dependencies using npm:

npm ls @clerk/clerk-js

Analyze the terminal output to locate any version of @clerk/clerk js in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 6.7.5), your application is affected.

Note: The npm ls @clerk/clerk-js command inspects dependencies declared in your package.json and lockfile; it does not perform automated runtime dynamic scanning.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-863: Incorrect Authorization, where the product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check. In @clerk/clerk js, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Summary `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. Sessions are not compromised and no existing user can be impersonated. The bypass is limited to the authorization decision returned by the predicate. `clerkMiddleware` continues to authenticate requests correctly, `auth()` reflects the real authentication state, and token verification is unaffected. ### Who is affected All apps that combine more than one authorization dimension in a single `has()` or `auth.protect()` call should upgrade to the patched versions. Patches are drop-in with no API changes. The information below describes the scope of the bypass and helps developers understand whether their apps are potentially affected, but is not a reason to delay the upgrade. 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. ```ts // Reverification combined with role / permission / feature / plan await auth.protect({ permission: 'org:settings:delete', reverification: 'strict' }); const canAct = has({ role: 'org:admin', reverification: 'strict' }); // Billing (feature / plan) combined with role / permission const canAct = has({ permission: 'org:admin', feature: 'premium' }); ``` Single-condition checks are not affected and continue to fail closed as expected: ```ts await auth.protect({ permission: 'org:settings:delete' }); has({ reverification: 'strict' }); ``` The callback form of `auth.protect` is not affected unless the callback itself invokes one of the affected shapes: ```ts await auth.protect(has => has({ permission: 'org:X' }) && has({ reverification: 'strict' })); ``` App patterns that rely only on single-condition checks, or that combine them via the callback form, are unaffected. Authentication, session state, and token verification continue to work correctly regardless of this bypass. `@clerk/shared` is usually not imported directly in application code, but the fix lives there and reaches an app through its framework package. If developers import `createCheckAuthorization` from `@clerk/shared` directly, their apps are also affected. Run `npm why @clerk/shared` (or the app's package manager's equivalent) to check the installed version. ### Additional `auth.protect()` bypass A second, related bypass lives in `@clerk/nextjs`: `auth.protect()` silently discarded authorization params (`role`, `permission`, `feature`, `plan`, `reverification`) whenever the same argument object also contained `unauthenticatedUrl`, `unauthorizedUrl`, or `token`. ### Recommended actions Upgrade to the latest patch release of the consuming app's framework package on its current major. Both Core 2 and Core 3 release lines have patches. See the "Affected packages" section above for the exact vulnerable ranges and patched versions per package. If a consuming app pins `@clerk/clerk-js` directly, upgrade it to the patched version. Most apps load `@clerk/clerk-js` from Clerk's CDN through their framework package and will receive the fix automatically, with no upgrade step required. ### Workaround If developers cannot upgrade immediately, split combined `has()` or `auth.protect()` calls into sequential single-condition checks: ```ts // Replace await auth.protect({ permission: 'org:X', reverification: 'strict' }); // With await auth.protect({ reverification: 'strict' }); await auth.protect({ permission: 'org:X' }); ``` Each single-condition check fails closed as expected, so evaluating them independently and denying if either fails produces the correct result. ### Timeline This issue was reported on 18 APR 2026, patched on 22 APR 2026, and publicly disclosed on 22 APR 2026. Thanks to AISafe for the responsible disclosure of this vulnerability.

CVE-2026-42349 Affected @clerk/clerk js Versions

29 component(s)
Fixed Versions:
6.7.53.47.54.8.32.33.33.2.146.39.37.2.45.125.105.61.66.4.31.17.212.0.162.17.113.0.181.13.292.2.52.19.363.2.22.4.133.1.40.29.111.1.42.9.153.1.152.6.313.1.161.7.792.1.60.1.16
Product / Package Ecosystem Affected Versions Fixed Version
@clerk/clerk-js
npm
≥ 6.0.0
< 6.7.5
6.7.5
@clerk/shared
npm
≥ 3.0.0
< 3.47.5
3.47.5
@clerk/shared
npm
≥ 4.0.0
< 4.8.3
4.8.3
@clerk/backend
npm
≥ 2.0.0
< 2.33.3
2.33.3
@clerk/backend
npm
≥ 3.0.0
< 3.2.14
3.2.14
@clerk/nextjs
npm
≥ 6.0.0
< 6.39.3
6.39.3
@clerk/nextjs
npm
≥ 7.0.0
< 7.2.4
7.2.4
@clerk/clerk-js
npm
≥ 5.22.0
< 5.125.10
5.125.10
@clerk/clerk-react
npm
≥ 5.9.0
< 5.61.6
5.61.6
@clerk/react
npm
≥ 6.0.0
< 6.4.3
6.4.3
@clerk/vue
npm
≥ 1.0.0
< 1.17.21
1.17.21
@clerk/vue
npm
≥ 2.0.0
< 2.0.16
2.0.16
@clerk/astro
npm
≥ 2.0.0
< 2.17.11
2.17.11
@clerk/astro
npm
≥ 3.0.0
< 3.0.18
3.0.18
@clerk/nuxt
npm
≥ 1.0.0
< 1.13.29
1.13.29
@clerk/nuxt
npm
≥ 2.0.0
< 2.2.5
2.2.5
@clerk/clerk-expo
npm
≥ 2.2.11
< 2.19.36
2.19.36
@clerk/expo
npm
≥ 3.0.0
< 3.2.2
3.2.2
@clerk/react-router
npm
≥ 0.0.1
< 2.4.13
2.4.13
@clerk/react-router
npm
≥ 3.0.0
< 3.1.4
3.1.4
@clerk/tanstack-react-start
npm
≥ 0.0.1
< 0.29.11
0.29.11
@clerk/tanstack-react-start
npm
≥ 1.0.0
< 1.1.4
1.1.4
@clerk/chrome-extension
npm
≥ 1.3.5
< 2.9.15
2.9.15
@clerk/chrome-extension
npm
≥ 3.0.0
< 3.1.15
3.1.15
@clerk/fastify
npm
≥ 1.0.42
< 2.6.31
2.6.31
@clerk/fastify
npm
≥ 3.0.0
< 3.1.16
3.1.16
@clerk/express
npm
≥ 0.1.0
< 1.7.79
1.7.79
@clerk/express
npm
≥ 2.0.0
< 2.1.6
2.1.6
@clerk/hono
npm
≥ 0.0.2
< 0.1.16
0.1.16

References

Frequently Asked Questions

What is CVE-2026-42349?
CVE-2026-42349 is a security vulnerability in @clerk/clerk js involving Clerk has an authorization bypass when combining organization, billing, or reverification checks under CWE-863: Incorrect Authorization.
Which @clerk/clerk js versions are affected?
Affected versions include releases prior to 6.7.5, 3.47.5, 4.8.3, 2.33.3, 3.2.14, 6.39.3, 7.2.4, 5.125.10, 5.61.6, 6.4.3, 1.17.21, 2.0.16, 2.17.11, 3.0.18, 1.13.29, 2.2.5, 2.19.36, 3.2.2, 2.4.13, 3.1.4, 0.29.11, 1.1.4, 2.9.15, 3.1.15, 2.6.31, 3.1.16, 1.7.79, 2.1.6, 0.1.16 across affected packages: @clerk/clerk-js, @clerk/shared, @clerk/backend, @clerk/nextjs, @clerk/clerk-react, @clerk/react, @clerk/vue, @clerk/astro, @clerk/nuxt, @clerk/clerk-expo, @clerk/expo, @clerk/react-router, @clerk/tanstack-react-start, @clerk/chrome-extension, @clerk/fastify, @clerk/express, @clerk/hono.
What version fixes CVE-2026-42349?
Upgrading to 6.7.5, 3.47.5, 4.8.3, 2.33.3, 3.2.14, 6.39.3, 7.2.4, 5.125.10, 5.61.6, 6.4.3, 1.17.21, 2.0.16, 2.17.11, 3.0.18, 1.13.29, 2.2.5, 2.19.36, 3.2.2, 2.4.13, 3.1.4, 0.29.11, 1.1.4, 2.9.15, 3.1.15, 2.6.31, 3.1.16, 1.7.79, 2.1.6, 0.1.16 (or the latest patched release for your respective branch) resolves the vulnerability.
Is @clerk/clerk-js affected?
Yes, @clerk/clerk-js is affected in releases prior to 6.7.5, 5.125.10. Upgrade your dependency to 6.7.5, 5.125.10 or later.
Is @clerk/shared affected?
Yes, @clerk/shared is affected in releases prior to 3.47.5, 4.8.3. Upgrade your dependency to 3.47.5, 4.8.3 or later.
What is the CVSS score of CVE-2026-42349?
CVE-2026-42349 has a CVSS v3.1 base score of 8.1 (HIGH) with vector string CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N.
What CWE is associated with CVE-2026-42349?
CVE-2026-42349 is classified under CWE-863: Incorrect Authorization (The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check.).
How can I check npm dependencies for CVE-2026-42349?
Run the dependency tree command: 'npm ls @clerk/clerk-js'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-w24r-5266-9c3c",
  "modified" : "2026-06-09T10:49:55Z",
  "published" : "2026-04-30T18:20:02Z",
  "aliases" : [ "CVE-2026-42349" ],
  "summary" : "Clerk has an authorization bypass when combining organization, billing, or reverification checks",
  "details" : "### Summary\n\n`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.\n\nSessions are not compromised and no existing user can be impersonated. The bypass is limited to the authorization decision returned by the predicate. `clerkMiddleware` continues to authenticate requests correctly, `auth()` reflects the real authentication state, and token verification is unaffected.\n\n### Who is affected\n\nAll apps that combine more than one authorization dimension in a single `has()` or `auth.protect()` call should upgrade to the patched versions. Patches are drop-in with no API changes. The information below describes the scope of the bypass and helps developers understand whether their apps are potentially affected, but is not a reason to delay the upgrade.\n\nThis 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.\n\n\n```ts\n// Reverification combined with role / permission / feature / plan\nawait auth.protect({ permission: 'org:settings:delete', reverification: 'strict' });\nconst canAct = has({ role: 'org:admin', reverification: 'strict' });\n\n// Billing (feature / plan) combined with role / permission\nconst canAct = has({ permission: 'org:admin', feature: 'premium' });\n```\n\nSingle-condition checks are not affected and continue to fail closed as expected:\n\n```ts\nawait auth.protect({ permission: 'org:settings:delete' });\nhas({ reverification: 'strict' });\n```\n\nThe callback form of `auth.protect` is not affected unless the callback itself invokes one of the affected shapes:\n\n```ts\nawait auth.protect(has => has({ permission: 'org:X' }) && has({ reverification: 'strict' }));\n```\n\nApp patterns that rely only on single-condition checks, or that combine them via the callback form, are unaffected. Authentication, session state, and token verification continue to work correctly regardless of this bypass.\n\n`@clerk/shared` is usually not imported directly in application code, but the fix lives there and reaches an app through its framework package. If developers import `createCheckAuthorization` from `@clerk/shared` directly, their apps are also affected. Run `npm why @clerk/shared` (or the app's package manager's equivalent) to check the installed version.\n\n### Additional `auth.protect()` bypass\n\nA second, related bypass lives in `@clerk/nextjs`: `auth.protect()` silently discarded authorization params (`role`, `permission`, `feature`, `plan`, `reverification`) whenever the same argument object also contained `unauthenticatedUrl`, `unauthorizedUrl`, or `token`.\n\n### Recommended actions\n\nUpgrade to the latest patch release of the consuming app's framework package on its current major. Both Core 2 and Core 3 release lines have patches. See the \"Affected packages\" section above for the exact vulnerable ranges and patched versions per package.\n\nIf a consuming app pins `@clerk/clerk-js` directly, upgrade it to the patched version. Most apps load `@clerk/clerk-js` from Clerk's CDN through their framework package and will receive the fix automatically, with no upgrade step required.\n\n### Workaround\n\nIf developers cannot upgrade immediately, split combined `has()` or `auth.protect()` calls into sequential single-condition checks:\n\n```ts\n// Replace\nawait auth.protect({ permission: 'org:X', reverification: 'strict' });\n// With\nawait auth.protect({ reverification: 'strict' });\nawait auth.protect({ permission: 'org:X' });\n```\n\nEach single-condition check fails closed as expected, so evaluating them independently and denying if either fails produces the correct result.\n\n### Timeline\n\nThis issue was reported on 18 APR 2026, patched on 22 APR 2026, and publicly disclosed on 22 APR 2026.\n\nThanks to AISafe for the responsible disclosure of this vulnerability.",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N"
  }, {
    "type" : "CVSS_V4",
    "score" : "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"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/shared"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "3.0.0"
      }, {
        "fixed" : "3.47.5"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 3.47.4"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/shared"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "4.0.0"
      }, {
        "fixed" : "4.8.3"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 4.8.2"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/backend"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "2.0.0"
      }, {
        "fixed" : "2.33.3"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 2.33.2"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/backend"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "3.0.0"
      }, {
        "fixed" : "3.2.14"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 3.2.13"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/nextjs"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "6.0.0"
      }, {
        "fixed" : "6.39.3"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 6.39.2"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/nextjs"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "7.0.0"
      }, {
        "fixed" : "7.2.4"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 7.2.3"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/clerk-js"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "5.22.0"
      }, {
        "fixed" : "5.125.10"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 5.125.9"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/clerk-js"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "6.0.0"
      }, {
        "fixed" : "6.7.5"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 6.7.4"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/clerk-react"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "5.9.0"
      }, {
        "fixed" : "5.61.6"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 5.61.5"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/react"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "6.0.0"
      }, {
        "fixed" : "6.4.3"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 6.4.2"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/vue"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.0.0"
      }, {
        "fixed" : "1.17.21"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 1.17.20"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/vue"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "2.0.0"
      }, {
        "fixed" : "2.0.16"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 2.0.15"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/astro"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "2.0.0"
      }, {
        "fixed" : "2.17.11"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 2.17.10"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/astro"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "3.0.0"
      }, {
        "fixed" : "3.0.18"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 3.0.17"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/nuxt"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.0.0"
      }, {
        "fixed" : "1.13.29"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 1.13.28"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/nuxt"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "2.0.0"
      }, {
        "fixed" : "2.2.5"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 2.2.4"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/clerk-expo"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "2.2.11"
      }, {
        "fixed" : "2.19.36"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 2.19.35"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/expo"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "3.0.0"
      }, {
        "fixed" : "3.2.2"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 3.2.1"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/react-router"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0.0.1"
      }, {
        "fixed" : "2.4.13"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 2.4.12"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/react-router"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "3.0.0"
      }, {
        "fixed" : "3.1.4"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 3.1.3"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/tanstack-react-start"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0.0.1"
      }, {
        "fixed" : "0.29.11"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 0.29.10"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/tanstack-react-start"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.0.0"
      }, {
        "fixed" : "1.1.4"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 1.1.3"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/chrome-extension"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.3.5"
      }, {
        "fixed" : "2.9.15"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 2.9.14"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/chrome-extension"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "3.0.0"
      }, {
        "fixed" : "3.1.15"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 3.1.14"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/fastify"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.0.42"
      }, {
        "fixed" : "2.6.31"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 2.6.30"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/fastify"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "3.0.0"
      }, {
        "fixed" : "3.1.16"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 3.1.15"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/express"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0.1.0"
      }, {
        "fixed" : "1.7.79"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 1.7.78"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/express"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "2.0.0"
      }, {
        "fixed" : "2.1.6"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 2.1.5"
    }
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@clerk/hono"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0.0.2"
      }, {
        "fixed" : "0.1.16"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 0.1.15"
    }
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/clerk/javascript/security/advisories/GHSA-w24r-5266-9c3c"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-42349"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/clerk/javascript"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-754", "CWE-863" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-04-30T18:20:02Z",
    "nvd_published_at" : "2026-05-11T17:16:33Z"
  }
}