Orkes Conductor SQL注入漏洞深度剖析:CVE-2025-66387的技术细节与利用

LevelBlue SpiderLabs在Orkes Conductor平台中发现一个时间盲注SQL注入漏洞,允许认证攻击者针对后端PostgreSQL数据库进行攻击,本文详细分析了漏洞成因、利用方式及修复建议。

LevelBlue SpiderLabs:Orkes Conductor中的SQL注入漏洞:CVE-2025-66387

LevelBlue SpiderLabs 在 Orkes Conductor 平台(版本 5.2.4 | v1.19.12)中发现了一个漏洞,该漏洞允许经过身份验证的攻击者对后端 PostgreSQL 数据库执行基于时间的盲 SQL 注入攻击。 Orkes Conductor 是一个用于建模复杂的分布式微服务和人工工作流的托管工作流编排平台。该漏洞源于 /api/workflow/search 端点中对 “sort” 参数输入验证不当,使得攻击者能够将精心构造的 SQL 表达式直接注入到后端查询中。

受影响的产品

  • 产品: Orkes Conductor
  • 版本: 5.2.4(平台 v1.19.12)
  • 受影响组件/api/workflow/search
  • 数据库: PostgreSQL
  • CVE ID: CVE-2025-66387

漏洞详情

易受攻击的端点在后端直接执行 SQL 语句时,未对 “sort” 查询参数中的用户可控输入进行适当清理。尽管平台设置了基本过滤以防止常见攻击载荷,但 LevelBlue 研究人员成功使用基于时间的盲 SQL 注入技术绕过了这些检查。 以下概念验证(PoC)载荷导致服务器响应出现故意延迟五秒,证实了存在基于时间的 SQL 注入漏洞: ?sort=(SELECT 1371 FROM PG_SLEEP(5)) 另一个示例如下: ?sort=(SELECT 1 + CASE WHEN (SELECT ASCII(SUBSTRING(datname,1,1)) FROM pg_database LIMIT 1 OFFSET 0) = 112 THEN PG_SLEEP(5) ELSE 0 END) 如果数据库名称的第一个字符匹配 ASCII 值(例如 112 = ‘p’),此载荷将触发可测量的时间延迟,从而实现逐字符的数据窃取。 此技术使得攻击者能够枚举数据库名称、表名和列元数据。

影响

成功利用此漏洞,远程的、经过身份验证的攻击者可以提取内部 PostgreSQL 数据库的名称和内容。 根据部署和数据库配置,攻击者可能获取到敏感的应用程序数据或编排工作流的状态信息。

根本原因

核心问题在于动态查询排序逻辑中的 SQL 字符串构建未进行净化处理。应用层的过滤不足以阻止逻辑注入链,并且未能使用预处理语句或查询参数化。

修复建议

该漏洞已被 Orkes 解决,建议用户更新到最新版本,验证并转义所有用户提供的输入,并使用带绑定变量的预处理语句。

时间线

  • 发现日期: 2025-09-15
  • 通知厂商: 2025-09-19
  • CVE 分配: 2025-11-28
  • 公开披露: 2025-12-18

致谢

此漏洞由 Timothy Stamopoulos 在客户委托项目期间,代表 LevelBlue SpiderLabs 发现。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计