Orkes Conductor SQL注入漏洞CVE-2025-66387分析

6 阅读2分钟

SQL注入漏洞在Orkes Conductor:CVE-2025-66387

发现了一个存在于Orkes Conductor平台(版本5.2.4 | v1.19.12)中的漏洞。该漏洞允许经过身份验证的攻击者对后端PostgreSQL数据库执行基于时间的盲注SQL注入攻击。

Orkes Conductor是一个用于编排复杂分布式微服务和人工工作流的托管工作流编排平台。此漏洞源于/api/workflow/search端点中sort参数的输入验证不当,使得精心构造的SQL表达式能够直接注入到后端查询中。

受影响的产品

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

漏洞详情

易受攻击的端点接受用户控制的sort查询参数输入,该输入未经适当净化就直接嵌入到后端执行的SQL语句中。尽管存在基本的过滤机制来阻止常见的攻击载荷,但研究人员成功使用基于时间的盲注技术绕过了这些检查。

以下概念验证载荷导致服务器响应出现故意的五秒延迟,证实了存在基于时间的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年9月15日
  • 通知厂商:2025年9月19日
  • CVE分配:2025年11月28日
  • 公开披露:2025年12月18日

致谢

该漏洞由研究人员在一次客户合作中发现。