🔴 【深度分析】严重安全漏洞: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 资源寻址机制的特性。

  1. 认证绕过逻辑: 认证过滤器被设计为拦截所有 /api/v1/** 路径下的请求。然而,其内部实现中存在一个特殊处理逻辑:任何以 /configs 结尾的请求路径,都会被错误地视为公开的“实例配置”端点(instance-config endpoint),从而直接放行,完全跳过凭证检查。

  2. 资源寻址机制: 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}
  3. 攻击向量构造: 攻击者利用上述两点,通过精心构造请求路径来触发绕过。例如,攻击者想要访问创建流程的 API(/api/v1/{tenant}/flows/{namespace}),但该路径不以 /configs 结尾。攻击者可以将 configs 作为资源路径的最后一个段,构造出类似 /api/v1/{tenant}/flows/{namespace}/configs 的请求。由于路径以 /configs 结尾,认证过滤器错误地将其视为公开端点并放行。然而,Kestra 的路由解析机制可能将 configs 视为一个不存在的资源标识符,或者更糟的是,由于路径匹配的模糊性,请求最终被路由到了原始的、未受保护的 API 处理逻辑上(如创建流程或触发执行)。

  4. 攻击链:

    • 步骤一:绕过认证。 攻击者发送一个以 /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 请求,以及异常的流程创建和执行活动。

参考资料