# SvelteKit Prerender DoS及SSRF漏洞
## 概述
SvelteKit 在特定条件下存在服务器端请求伪造(SSRF)和拒绝服务(DoS)漏洞,已在版本 2.49.5 中修复。
## 影响版本
- **DoS(含 prerender 路由)**: 2.44.0 至 2.49.4
- **DoS(使用 adapter-node 且未配置 ORIGIN)**: 2.19.0 至 2.49.4
- **已修复版本**: 2.49.5
## 细节
- 当应用包含至少一个预渲染路由(`export const prerender = true`)时,2.44.0 至 2.49.4 版本可能遭受 DoS。
- 在 2.19.0 至 2.49.4 版本中,若同时满足以下条件,也可能触发 DoS:
- 使用 `adapter-node`
- 未配置 `ORIGIN` 环境变量
- 未使用具备 Host 头校验的反向代理
## 影响
- 可能导致服务拒绝(DoS)
- 在特定配置下可能引发 SSRF
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: Denial of service and possible SSRF when using prerendering · Advisory · sveltejs/kit · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 关键信息摘要
#### 漏洞描述
- **漏洞类型**:拒绝服务 (DoS) 和可能的服务器端请求伪造 (SSRF)
- **受影响的包**:
- `@sveltejs/adapter-node` 版本 >=5.4.1, <=5.5.0
- `@sveltejs/kit` 版本 >=2.19.0, <=2.49.4
- **修复版本**:
- `@sveltejs/adapter-node`:5.5.1
- `@sveltejs/kit`:2.49.5
#### 漏洞细节
- **DoS影响**:
- 受影响版本从2.44.0开始,如果应用有至少一个预渲染的路由,则存在DoS风险。
- **SSRF影响**:
- 受影响版本从2.19.0开始,如果应用有至少一个预渲染的路由,并且使用`adapter-node`而没有配置`ORIGIN`环境变量,且未使用实现主机头验证的反向代理,则存在DoS和SSRF风险。
#### 漏洞影响
- **DoS**:导致运行服务器进程终止。
- **SSRF**:允许访问内部服务,这些服务在从SvelteKit的服务器运行时获取时无需身份验证即可访问。
- 还有可能通过缓存中毒获取跨站脚本 (XSS),通过迫使潜在的CDN缓存攻击者服务器返回的XSS来实现。
#### 其它信息
- **严重性**:高 (8.4/10)
- **CVE ID**:CVE-2025-67647
- ** weakness**:CWE-248, CWE-918
标题: Merge commit from fork · sveltejs/kit@d9ae9b0 · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
## 关键漏洞信息
### 修改概述
- **确保解码后的解析路径与解码后的 URL 路径名进行比较**
- **远程资源不应被重定向**
- **实际的重定向前端不运行**
- **添加对节点适配器主机、协议和端口的验证**
- **更新处理程序文件**
### 主要变更点
- **修复:添加对协议、主机和端口头值的验证**
- **修复:确保 URL 解码的路径名不会被误解为重定向的请求**
### 关键函数与修改
1. **`normalise_header`**:
- 用于标准化 HTTP 请求头的函数
- 检查头值是否为数组并返回第一个元素
- 检查是否存在多个值,抛出错误
2. **`get_origin`**:
- 提取请求的协议、主机和端口信息
- 增强安全校验:避免协议头注入攻击
- 保证主机名与端口的有效性
3. **`internal_respond`**:
- 使用 `fetch` 进行资源请求时,处理自动解码逻辑
- 尝试删除可能破坏响应的 `Content-Encoding` 和 `Content-Length` 头信息
### 修复作用
- **增强了对协议头注入的防御能力**
- **确保路径解析与 URL 路径名的正确对应,避免路由错误**
- **规范化了 HTTP 头的处理过程,提高了代码健壮性**
暂无评论