🟠 高危 | CVE-2026-63429 — HeyForm is an open-source form builder. Prior to v...
🟠 【深度分析】高危安全漏洞:CVE-2026-63429
CVSS 评分: 高危(8.6)🟠 状态: Deferred 发布时间: 2026-07-20
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-63429 |
| CVSS 评分 | 8.6 🟠 |
| 严重程度 | 高危 |
| CVSS 向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L |
| CWE 分类 | CWE-306,CWE-434 |
| 发布时间 | 2026-07-20 |
| 最后更新 | 2026-07-22 |
| 状态 | Deferred |
| 数据来源 | security-advisories@github.com |
CVSS 评分:8.6(高危)
CVSS 向量: AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
危害等级: 高(完整性影响严重,可被远程利用)
漏洞概述
HeyForm 是一款开源表单构建器。其 /api/upload 接口在版本 3.0.0-rc.9 之前完全缺乏身份验证与访问控制。任何未认证的匿名互联网用户均可通过该接口上传文件(PDF、DOC/DOCX、XLS/XLSX、CSV、TXT、MP4、图片等,大小限制为 10 MB),并立即获得一个位于 HeyForm 域名下的永久公开 URL。该接口本应同时服务于已认证的表单创建者和未认证的表单提交者,但由于缺少表单上下文绑定,每个请求均被匿名接受。
此漏洞可导致恶意文件托管、钓鱼攻击、存储型 XSS(如上传含恶意脚本的 SVG 或 HTML 文件)以及进一步渗透利用。
受影响组件与版本
| 组件 | 影响版本 |
|---|---|
| HeyForm | < 3.0.0-rc.9 |
| 修复版本 | 3.0.0-rc.9 及以上 |
漏洞原理分析
根据 NVD 描述及 CWE 分类(CWE-306:缺少关键功能身份验证;CWE-434:未限制危险文件类型上传),该漏洞成因如下:
- 无认证防护:
POST /api/upload端点未设置任何全局守卫(如 JWT 验证、Session 检查),也未要求openToken或 Cookie 校验。 - 无表单上下文验证:该接口被设计为同时支持已登录用户和匿名表单提交者,但未绑定任何表单ID或用户会话,导致服务器无法区分合法上传与恶意上传。
- 无文件类型与内容校验:允许上传多种文件类型(包括可执行脚本、HTML、SVG 等),仅受 10 MB 大小限制。上传后文件直接存储在服务器并生成永久公开 URL,未进行病毒扫描或内容过滤。
- 永久公开存储:上传后的文件 URL 不会过期,攻击者可将恶意文件长期托管在 HeyForm 的受信任域名下,绕过浏览器同源策略或用于钓鱼攻击。
攻击向量:远程攻击者无需任何身份验证或用户交互,直接向 /api/upload 发送 HTTP POST 请求(AV:N / AC:L / PR:N / UI:N),即可完成文件上传。
影响评估
| 评估维度 | 分析 |
|---|---|
| 攻击复杂度 | 低(无需特殊条件,直接发送 HTTP POST 即可) |
| 所需权限 | 无 |
| 用户交互 | 无需 |
| 范围影响 | 不变(S:U,影响仅限于该组件自身) |
| 机密性影响 | 低(上传文件可能包含敏感信息,但攻击者无法直接读取服务器已有文件) |
| 完整性影响 | 高(攻击者可上传任意恶意文件,替换合法资源或植入后门) |
| 可用性影响 | 低(上传大量垃圾文件可能导致存储或带宽压力,但非主要风险) |
| 实际威胁 | - 托管钓鱼页面(利用 HeyForm 域名可信度) - 托管恶意软件(诱导下载) - 存储型 XSS(上传 HTML/SVG 文件,其他用户访问时执行脚本) - 被用于 DDoS 反射或流量劫持 |
由于该接口未作任何访问控制,互联网上任何人均可立即利用,且文件永久有效,因此实际危害极高。
修复建议
1️⃣ 升级版本(官方推荐)
立即升级至 HeyForm 3.0.0-rc.9 或更高版本。该版本已对上传端点添加必要的身份认证与表单上下文校验。
2️⃣ 临时缓解措施(补丁部署前)
- 在反向代理/网关层限制上传路径的访问:例如,在 Nginx 中仅允许已认证的请求访问
/api/upload(需配合 JWT 或 Session 验证)。 - 禁用上传功能:如业务暂不需要,可配置应用服务器(如 Express/Koa)返回 403 拒绝所有对
/api/upload的请求。 - 限制上传目录的执行权限:确保上传目录不允许执行脚本(如禁止 PHP、JSP 执行,或配置存储桶为静态文件托管)。
- 添加文件内容扫描:在反向代理层集成病毒扫描服务(如 ClamAV)或文件类型白名单校验(仅允许图片、文档等无执行能力格式)。
- 使用临时签名URL:若使用云存储(如 S3),可强制要求上传时附带签名,并设置 URL 过期时间。
参考资料
| 来源 | 链接 |
|---|---|
| NVD 官方页面 | https://nvd.nist.gov/vuln/detail/CVE-2026-63429 |
| CWE-306 详情 | https://cwe.mitre.org/data/definitions/306.html |
| CWE-434 详情 | https://cwe.mitre.org/data/definitions/434.html |
| HeyForm 官方安全公告 | 待上游确认后补充(可关注 GitHub Release 说明) |
备注:本文基于 NVD 提供的公开数据分析撰写,所有技术细节均来源于官方描述。对漏洞原理的推断严格遵循 CWE 分类和 CVSS 向量,未虚构任何未经验证的信息。