🔴 严重 | CVE-2026-53576 — Kestra is an open-source, event-driven orchestrati...
🔴 【深度分析】严重安全漏洞:CVE-2026-53576
CVSS 评分: 严重(10.0)🔴 状态: Received 发布时间: 2026-06-26
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-53576 |
| CVSS 评分 | 10.0 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| CWE 分类 | CWE-94,CWE-288 |
| 发布时间 | 2026-06-26 |
| 最后更新 | 2026-06-26 |
| 状态 | Received |
| 数据来源 | security-advisories@github.com |
好的,作为一名资深网络安全分析师,我将基于您提供的 NVD 数据,为您生成一篇关于 CVE-2026-53576 的深度分析文章。
CVE-2026-53576 深度分析:Kestra REST API 认证绕过致远程代码执行
⚠️ 严重警告:CVSS 10.0 (CRITICAL)
CVSS 向量:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H该漏洞允许未经身份验证的远程攻击者完全控制 Kestra 服务器及其宿主机,危害等级为严重。
漏洞概述
CVE-2026-53576 是一个存在于 Kestra(开源事件驱动编排平台)REST API 中的认证绕过漏洞。由于认证过滤器对特定 URL 路径的处理逻辑存在缺陷,攻击者可以构造特制的 HTTP 请求,绕过身份验证机制,直接访问本应受保护的后端 API 端点(如创建流程和执行任务)。结合 Kestra 默认配置中挂载 Docker 套接字(/var/run/docker.sock)的情况,此漏洞可被利用实现从容器逃逸到宿主机,最终导致远程代码执行(RCE),对系统的机密性、完整性和可用性构成完全威胁。
受影响组件与版本
- 受影响组件: Kestra 开源编排平台
- 影响版本:
- 所有低于 1.0.45 的 1.0.x 版本
- 所有低于 1.3.21 的 1.3.x 版本
- 安全版本:
- 1.0.45
- 1.3.21
漏洞原理分析
该漏洞的核心成因是认证过滤器(@Filter("/api/v1/**"))在处理请求路径时存在逻辑缺陷,结合了 Kestra 资源寻址机制的特性。
认证绕过逻辑: 认证过滤器被设计为拦截所有
/api/v1/**路径下的请求。然而,其内部实现中存在一个特殊处理逻辑:任何以/configs结尾的请求路径,都会被错误地视为公开的“实例配置”端点(instance-configendpoint),从而直接放行,完全跳过凭证检查。资源寻址机制: Kestra 通过 URL 路径段来定位资源,其模式为
/api/v1/{tenant}/{resource_type}/{resource_identifier}。例如:- 创建流程:
/api/v1/{tenant}/flows/{namespace} - 触发执行:
/api/v1/{tenant}/executions/{namespace}/{id} - 访问键值存储:
/api/v1/{tenant}/namespaces/{namespace}/kv/{key}
- 创建流程:
攻击向量构造: 攻击者利用上述两点,通过精心构造请求路径来触发绕过。例如,攻击者想要访问创建流程的 API(
/api/v1/{tenant}/flows/{namespace}),但该路径不以/configs结尾。攻击者可以将configs作为资源路径的最后一个段,构造出类似/api/v1/{tenant}/flows/{namespace}/configs的请求。由于路径以/configs结尾,认证过滤器错误地将其视为公开端点并放行。然而,Kestra 的路由解析机制可能将configs视为一个不存在的资源标识符,或者更糟的是,由于路径匹配的模糊性,请求最终被路由到了原始的、未受保护的 API 处理逻辑上(如创建流程或触发执行)。攻击链:
- 步骤一:绕过认证。 攻击者发送一个以
/configs结尾的、针对流程创建或执行触发 API 的请求,成功绕过认证。 - 步骤二:创建恶意流程。 攻击者利用绕过后的权限,创建一个包含
Shell或Process类型任务的恶意流程。这些任务允许在 Kestra 容器内执行任意系统命令。 - 步骤三:触发执行。 攻击者触发该恶意流程的执行。
- 步骤四:容器内代码执行。 恶意流程在 Kestra 容器内以
root权限执行攻击者指定的命令。 - 步骤五:容器逃逸(关键)。 根据官方
docker-compose.yml配置,/var/run/docker.sock被挂载到 Kestra 容器内。攻击者可以利用容器内的root权限和挂载的 Docker 套接字,与宿主机上的 Docker 守护进程通信,执行docker exec等命令,从而在宿主机上启动一个具有完全权限的容器,或直接在宿主机上执行命令,实现容器逃逸和宿主机控制。
- 步骤一:绕过认证。 攻击者发送一个以
影响评估
- 攻击复杂度 (AC:L): 低。攻击者无需复杂的网络环境或特殊工具,只需发送构造好的 HTTP 请求即可。
- 攻击向量 (AV:N): 网络。攻击者可以从任何能够访问 Kestra REST API 的网络位置发起攻击。
- 所需权限 (PR:N): 无。攻击者完全不需要任何身份验证信息。
- 用户交互 (UI:N): 无。攻击过程无需受害者参与。
- 影响范围 (S:C): 已变更。漏洞直接影响 Kestra 容器,但成功利用后可导致宿主机被控制,影响范围超出原始组件。
- 潜在后果:
- 完全控制 Kestra 平台: 攻击者可以创建、修改、删除任意流程、执行任务、访问敏感数据。
- 容器逃逸与宿主机沦陷: 利用挂载的 Docker 套接字,攻击者可以完全控制宿主机操作系统。
- 横向移动: 宿主机沦陷后,攻击者可以以此为跳板,攻击内网中的其他系统。
- 数据泄露与勒索: 攻击者可以窃取 Kestra 平台中存储的敏感信息(如 API 密钥、数据库凭证),或对系统进行加密勒索。
修复建议
1. 立即升级(强烈推荐)
这是最根本、最有效的解决方案。请立即将 Kestra 实例升级到以下安全版本:
- 升级到 1.0.45 或更高版本
- 升级到 1.3.21 或更高版本
2. 临时缓解措施
如果无法立即升级,请采取以下措施以降低风险:
- 网络隔离: 将 Kestra 的 REST API 端口(默认 8080)置于防火墙之后,仅允许受信任的 IP 地址或网络段访问。切勿将其直接暴露在公网。
- 反向代理认证: 在 Kestra 实例前部署反向代理(如 Nginx、Apache),并在代理层强制实施身份验证,例如使用 HTTP Basic Auth、OAuth2 Proxy 等。确保所有对
/api/v1/路径的请求都必须通过代理层的认证。 - 移除 Docker 套接字挂载: 修改
docker-compose.yml文件,移除- /var/run/docker.sock:/var/run/docker.sock这一行。这可以阻止攻击者在成功利用漏洞后实现容器逃逸。请注意,这可能会影响 Kestra 某些需要与 Docker 交互的功能。 - 监控与告警: 加强对 Kestra 服务器日志的监控,特别关注来自未知 IP 的、路径以
/configs结尾的 API 请求,以及异常的流程创建和执行活动。
参考资料
- CVE 详情页 (NVD): https://nvd.nist.gov/vuln/detail/CVE-2026-53576
- CWE-94: 代码生成控制不当(代码注入) - https://cwe.mitre.org/data/definitions/94.html
- CWE-288: 使用备用路径或通道进行认证绕过 - https://cwe.mitre.org/data/definitions/288.html
- Kestra 官方安全公告: (建议关注 Kestra 官方 GitHub 仓库的 Security Advisories 页面获取最新信息)