🔴 严重 | CVE-2025-71389 — Cal.com (calcom/cal.diy) before 5.9.9 is vulnerabl...
🔴 【深度分析】严重安全漏洞:CVE-2025-71389
CVSS 评分: 严重(10.0)🔴 状态: Deferred 发布时间: 2026-07-23
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2025-71389 |
| CVSS 评分 | 10.0 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| CWE 分类 | CWE-94 |
| 发布时间 | 2026-07-23 |
| 最后更新 | 2026-07-30 |
| 状态 | Deferred |
| 数据来源 | disclosure@vulncheck.com |
漏洞概述
CVE ID:CVE-2025-71389
CVSS 评分:10.0(严重)
CVSS 向量:CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
危害等级:严重(Critical)
Cal.com(开源日程管理平台,calcom/cal.diy)在 5.9.9 版本之前存在一个严重的未认证远程代码执行漏洞。攻击者无需任何身份验证或用户交互,通过发送精心构造的 React Server Components(RSC)请求即可在服务器端触发任意代码执行。该漏洞源自上游 Next.js 的反序列化缺陷(CVE-2025-55182),Cal.com 因捆绑了存在漏洞的 Next.js 版本而受影响。
受影响组件与版本
| 组件 | 影响版本 | 修复版本 |
|---|---|---|
Cal.com (calcom/cal.diy) |
< 5.9.9 | 5.9.9 |
| 上游依赖:Next.js(内部 RSC 处理模块) | 受 CVE-2025-55182 影响的版本 | 已更新 |
注意:由于 Next.js 的 RSC 反序列化漏洞(CVE-2025-55182)是一个独立上游漏洞,任何直接或间接使用了受影响 Next.js 版本的应用程序均可能受牵连。Cal.com 在 5.9.9 版本中通过升级依赖修复了此问题。
漏洞原理分析
该漏洞的核心成因是 Next.js 在处理 React Server Components (RSC) 请求时,对攻击者可控的输入进行了不安全的反序列化操作。RSC 是 React 18+ 引入的一种服务器端渲染机制,允许组件在服务端运行生成序列化数据流并传输至客户端。Next.js 实现了该协议,但在解析 RSC 请求载荷时,错误地信任了客户端提交的序列化数据。
根据 NVD 描述和上游 CVE(CVE-2025-55182)的分析,攻击链如下:
- 攻击向量:攻击者可直接向 Cal.com 的 HTTP 服务发送特制的 POST 请求,请求中包含针对 RSC 端点的恶意 payload(例如
Content-Type: application/json或text/plain格式的序列化对象)。 - 反序列化触发:Next.js 服务端在解析 RSC 请求时,会调用内部的反序列化逻辑(如
JSON.parse或自定义fromJSON函数)来处理用户提交的数据。该逻辑未进行充分的输入校验,因此攻击者可以注入恶意的序列化数据。 - 利用反序列化链:通过构造特定的 JSON 对象(例如利用
__proto__、constructor等属性),攻击者可以触发 Node.js 原型污染或调用危险函数(如require、child_process.exec等),最终实现远程代码执行(RCE)。
关键点:
- 无需认证:RSC 端点通常作为公共 API 暴露,未进行权限校验。
- 无需用户交互:攻击完全在服务器端完成,受害者用户无需任何操作。
- 攻击复杂度低:只需发送一个 HTTP 请求,无需特殊网络条件或中间人攻击(CVSS AC:L 确认)。
现有信息局限:虽然 NVD 未披露具体的反序列化 PoC 细节,但结合 CWE-94(代码生成控制不当)和 Next.js 生态历史漏洞(如 CVE-2024-34351 等),可以合理推断出攻击利用了 Node.js 中 eval 或 new Function 等效的反序列化行为。具体利用链可能依赖于 Cal.com 运行时环境中可访问的全局对象。
影响评估
根据 CVSS 4.0 向量,该漏洞的威胁特征如下:
| 维度 | 评分项 | 评价 |
|---|---|---|
| 攻击向量 (AV) | 网络 (N) | 攻击者可从任意网络位置发起攻击 |
| 攻击复杂度 (AC) | 低 (L) | 无需特殊条件,自动工具即可利用 |
| 攻击能力需求 (AT) | 无 (N) | 无需绕过任何缓解措施 |
| 所需权限 (PR) | 无 (N) | 不需要任何身份认证 |
| 用户交互 (UI) | 无 (N) | 受害者无需任何操作 |
| 机密性影响 (VC) | 高 (H) | 可读取任意服务器文件、数据库 |
| 完整性影响 (VI) | 高 (H) | 可修改系统配置、植入后门 |
| 可用性影响 (VA) | 高 (H) | 可导致服务崩溃或完全控制 |
| 安全影响范围 (SC/SI/SA) | 高 (H) | 突破应用隔离,影响底层主机 |
实际威胁场景
- 完全远程接管:攻击者获得服务器操作系统级 shell 权限。
- 数据泄露:获取 Cal.com 中所有用户的日程、配置、API 密钥等敏感信息。
- 横向移动:利用被控服务器作为跳板攻击内部网络。
- 供应链风险:由于 Cal.com 是开源日程管理工具,常被集成到企业内部系统,One-click 利用可导致整个业务受影响。
利用条件
- 目标运行 Cal.com < 5.9.9 版本。
- 服务器开放了对外 HTTP 端口(默认 80/443)。
- 无额外的 WAF 或反序列化过滤器限制(但此类防护通常难以完全拦截 RSC 协议的定制发包)。
综合风险评级: 极高 —— 建议立即修复。
修复建议
官方补丁
- 立即升级:将 Cal.com 更新至 5.9.9 或更高版本。该版本已通过更新 Next.js 依赖修复了上游 RSC 反序列化漏洞。
- 命令(自建 Docker):
docker pull calcom/cal.com:5.9.9然后重新部署。 - 源码部署:将
package.json中的next依赖版本升级到修复了 CVE-2025-55182 的版本(具体版本号请参照 Next.js 官方公告)。
临时缓解措施(若无法立即升级)
- 限制网络访问:将 Cal.com 服务置于内部网络或 VPN 之后,禁止公网直接访问。
- 启用 WAF 规则:在反向代理(如 Nginx、Cloudflare)中添加规则,拦截所有含异常
__proto__、constructor、require等关键字的 POST 请求。 - 监控异常日志:检查访问日志中是否存在大量针对
/api/、/_rsc或类似 RSC 端点的可疑 POST 请求。 - 限制 Node.js 运行时能力:考虑使用
--experimental-vm-modules沙箱或vm2等模块隔离执行环境(但需注意兼容性,且可能不完全有效)。
长期建议
- 关注 Next.js 官方安全公告(https://nextjs.org/security),及时更新依赖。
- 审查自身应用的依赖树,确保所有间接引入的 Next.js 版本均已修复。
参考资料
- CVE 详情页:https://nvd.nist.gov/vuln/detail/CVE-2025-71389
- 上游 CVE(CVE-2025-55182):待 NVD 发布后更新
- CWE-94:代码生成控制不当(Improper Control of Generation of Code) – https://cwe.mitre.org/data/definitions/94.html
- Cal.com 官方发布:https://github.com/calcom/cal.com/releases/tag/5.9.9
- Next.js 安全公告(RSC 反序列化):https://nextjs.org/blog/security-update-2025-05 (示例链接,实际以官方为准)
- CVSS 4.0 计算器:https://www.first.org/cvss/calculator/4.0#CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
声明:本文基于 NVD 公开数据及常见漏洞分析框架编写,所涉及的技术细节均为合理推断。由于漏洞状态为
Deferred,部分细节可能随上游分析更新而变化。建议关注 Cal.com 和 Next.js 官方渠道获取最新信息。