CVE-2026-34076
Clerk JavaScript: SSRF in the opt-in clerkFrontendApiProxy feature may leak secret keys to unintended host
CVE-2026-34076 is a high vulnerability (CVSS 7.4) in Clerk Javascript, published March 27, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.32%, the 25th percentile. Fixed in @clerk/backend 3.2.3.
Clerk JavaScript is the official JavaScript repository for Clerk authentication. In @clerk/hono from versions 0.1.0 to before 0.1.5, @clerk/express from versions 2.0.0 to before 2.0.7, @clerk/backend from versions 3.0.0 to before 3.2.3, and @clerk/fastify from versions 3.1.0 to before 3.1.5, the clerkFrontendApiProxy function in @clerk/backend is vulnerable to Server-Side Request Forgery (SSRF). An unauthenticated attacker can craft a request path that causes the proxy to send the application's Clerk-Secret-Key to an attacker-controlled server. This issue has been patched in @clerk/hono version 0.1.5, @clerk/express version 2.0.7, @clerk/backend version 3.2.3, and @clerk/fastify version 3.1.5.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.4
Clerk JavaScript: SSRF in the opt-in clerkFrontendApiProxy feature may leak secret keys to unintended host
Clerk JavaScript is the official JavaScript repository for Clerk authentication. In @clerk/hono from versions 0.1.0 to before 0.1.5, @clerk/express from versions 2.0.0 to before 2.0.7, @clerk/backend from versions 3.0.0 to before 3.2.3, and @clerk/fastify from versions 3.1.0 to before 3.1.5, the clerkFrontendApiProxy function in @clerk/backend is vulnerable to Server-Side Request Forgery (SSRF). An unauthenticated attacker can craft a request path that causes the proxy to send the application's Clerk-Secret-Key to an attacker-controlled server. This issue has been patched in @clerk/hono version 0.1.5, @clerk/express version 2.0.7, @clerk/backend version 3.2.3, and @clerk/fastify version 3.1.5.
- Record
CVE-2026-34076- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-918
- Updated
- 2026-11-02
EUVDEUVD-2026-17974
7.4
Clerk JavaScript is the official JavaScript repository for Clerk authentication. In @clerk/hono from versions 0.1.0 to before 0.1.5, @clerk/express from versions 2.0.0 to before 2.0.7, @clerk/backend from versions 3.0.0 to before 3.2.3, and @clerk/fastify from versions 3.1.0 to before 3.1.5, the clerkFrontendApiProxy function in @clerk/backend is vulnerable to Server-Side Request Forgery (SSRF). An unauthenticated attacker can craft a request path that causes the proxy to send the application's Clerk-Secret-Key to an attacker-controlled server. This issue has been patched in @clerk/hono version 0.1.5, @clerk/express version 2.0.7, @clerk/backend version 3.2.3, and @clerk/fastify version 3.1.5.
- Record
EUVD-2026-17974- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-gjxx-92w9-8v8f
7.4
Clerk: SSRF in the opt-in clerkFrontendApiProxy feature may leak secret keys to unintended host
Summary
The clerkFrontendApiProxy function in @clerk/backend is vulnerable to Server-Side Request Forgery (SSRF). An unauthenticated attacker can craft a request path that causes the proxy to send the application's Clerk-Secret-Key to an attacker-controlled server.
Affected packages
Only applications that have opted into the frontendApiProxy feature are affected. This feature is not enabled by default. Users of @clerk/nextjs are not affected due to how the framework handles repeated / in request paths.
| Package | Affected versions | Fixed version |
|---|---|---|
| @clerk/backend | >= 3.0.0, <= 3.2.2 | 3.2.3 |
| @clerk/express | >= 2.0.0, <= 2.0.6 | 2.0.7 |
| @clerk/hono | >= 0.1.0, <= 0.1.4 | 0.1.5 |
| @clerk/fastify | >= 3.1.0, <= 3.1.4 | 3.1.5 |
Search your codebase for the frontendApiProxy option. If none of the patterns below appear in your code, you are not affected.
@clerk/express
app.use(clerkMiddleware({ frontendApiProxy: { enabled: true } }));
@clerk/hono
app.use('*', clerkMiddleware({ frontendApiProxy: { enabled: true } }));
@clerk/fastify
fastify.register(clerkPlugin, { frontendApiProxy: { enabled: true } });
@clerk/backend
import { clerkFrontendApiProxy } from '@clerk/backend/proxy';
A quick way to check across your entire project:
grep -r "frontendApiProxy\|clerkFrontendApiProxy" .
If there are no matches, you are not using this feature.
Recommended actions
Clerk's internal logs show no evidence of users utilizing the built-in proxy with the impacted versions. Despite that, if you are on an impacted version and use the built-in proxy we recommend upgrading and rotating your Clerk Secret Key immediately.
- Upgrade to the patched version of
@clerk/backend(and@clerk/express,@clerk/hono, etc.) - Rotate your Clerk Secret Key after upgrading - if an attacker exploited this vulnerability, they may have captured your key. Rotate it in the Clerk Dashboard under API Keys. You should deploy your application with the updated key before revoking the existing key.
- Audit access logs for requests to your proxy endpoint (
/__clerk/by default) containing double slashes in the path.
Credit
Discovered during an internal code audit.
- Record
GHSA-gjxx-92w9-8v8f- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-918
- Updated
- 2026-11-02
NVD
7.4
Clerk JavaScript is the official JavaScript repository for Clerk authentication. In @clerk/hono from versions 0.1.0 to before 0.1.5, @clerk/express from versions 2.0.0 to before 2.0.7, @clerk/backend from versions 3.0.0 to before 3.2.3, and @clerk/fastify from versions 3.1.0 to before 3.1.5, the clerkFrontendApiProxy function in @clerk/backend is vulnerable to Server-Side Request Forgery (SSRF). An unauthenticated attacker can craft a request path that causes the proxy to send the application's Clerk-Secret-Key to an attacker-controlled server. This issue has been patched in @clerk/hono version 0.1.5, @clerk/express version 2.0.7, @clerk/backend version 3.2.3, and @clerk/fastify version 3.1.5.
- Record
CVE-2026-34076- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-918
- Updated
- 2026-11-02
OSV
7.4
Clerk JavaScript: SSRF in the opt-in clerkFrontendApiProxy feature may leak secret keys to unintended host
Clerk JavaScript is the official JavaScript repository for Clerk authentication. In @clerk/hono from versions 0.1.0 to before 0.1.5, @clerk/express from versions 2.0.0 to before 2.0.7, @clerk/backend from versions 3.0.0 to before 3.2.3, and @clerk/fastify from versions 3.1.0 to before 3.1.5, the clerkFrontendApiProxy function in @clerk/backend is vulnerable to Server-Side Request Forgery (SSRF). An unauthenticated attacker can craft a request path that causes the proxy to send the application's Clerk-Secret-Key to an attacker-controlled server. This issue has been patched in @clerk/hono version 0.1.5, @clerk/express version 2.0.7, @clerk/backend version 3.2.3, and @clerk/fastify version 3.1.5.
- Record
CVE-2026-34076- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-918
- Updated
- 2026-11-02
OSVGHSA-gjxx-92w9-8v8f
7.4
Clerk: SSRF in the opt-in clerkFrontendApiProxy feature may leak secret keys to unintended host
Summary
The clerkFrontendApiProxy function in @clerk/backend is vulnerable to Server-Side Request Forgery (SSRF). An unauthenticated attacker can craft a request path that causes the proxy to send the application's Clerk-Secret-Key to an attacker-controlled server.
Affected packages
Only applications that have opted into the frontendApiProxy feature are affected. This feature is not enabled by default. Users of @clerk/nextjs are not affected due to how the framework handles repeated / in request paths.
| Package | Affected versions | Fixed version |
|---|---|---|
| @clerk/backend | >= 3.0.0, <= 3.2.2 | 3.2.3 |
| @clerk/express | >= 2.0.0, <= 2.0.6 | 2.0.7 |
| @clerk/hono | >= 0.1.0, <= 0.1.4 | 0.1.5 |
| @clerk/fastify | >= 3.1.0, <= 3.1.4 | 3.1.5 |
Search your codebase for the frontendApiProxy option. If none of the patterns below appear in your code, you are not affected.
@clerk/express
app.use(clerkMiddleware({ frontendApiProxy: { enabled: true } }));
@clerk/hono
app.use('*', clerkMiddleware({ frontendApiProxy: { enabled: true } }));
@clerk/fastify
fastify.register(clerkPlugin, { frontendApiProxy: { enabled: true } });
@clerk/backend
import { clerkFrontendApiProxy } from '@clerk/backend/proxy';
A quick way to check across your entire project:
grep -r "frontendApiProxy\|clerkFrontendApiProxy" .
If there are no matches, you are not using this feature.
Recommended actions
Clerk's internal logs show no evidence of users utilizing the built-in proxy with the impacted versions. Despite that, if you are on an impacted version and use the built-in proxy we recommend upgrading and rotating your Clerk Secret Key immediately.
- Upgrade to the patched version of
@clerk/backend(and@clerk/express,@clerk/hono, etc.) - Rotate your Clerk Secret Key after upgrading - if an attacker exploited this vulnerability, they may have captured your key. Rotate it in the Clerk Dashboard under API Keys. You should deploy your application with the updated key before revoking the existing key.
- Audit access logs for requests to your proxy endpoint (
/__clerk/by default) containing double slashes in the path.
Credit
Discovered during an internal code audit.
- Record
GHSA-gjxx-92w9-8v8f- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-918
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
@clerk/backendnpm |
3.0.0 to 3.2.2 | 3.2.3 |
@clerk/expressnpm |
2.0.0 to 2.0.6 | 2.0.7 |
@clerk/hononpm |
0.1.0 to 0.1.4 | 0.1.5 |
@clerk/fastifynpm |
3.1.0 to 3.1.4 | 3.1.5 |
@clerk/backendnpm |
3.0.0 up to 3.2.3 | 3.2.3 |
@clerk/expressnpm |
2.0.0 up to 2.0.7 | 2.0.7 |
@clerk/hononpm |
0.1.0 up to 0.1.5 | 0.1.5 |
@clerk/fastifynpm |
3.1.0 up to 3.1.5 | 3.1.5 |
History
| When | Changed | Sources |
|---|---|---|
| 2026-11-02 | created | CVE List, EUVD, GitHub Advisories, NVD, OSV |