概述
在一次客户合作中发现并披露了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
漏洞详情
易受攻击的端点接收用户控制的"sort"查询参数输入,该输入未经充分净化便被直接嵌入到后端执行的SQL语句中。虽然平台设置了一些基础过滤来阻止常见攻击载荷,但成功绕过了这些检查,利用了时间盲注技术。
以下概念验证载荷导致了服务器响应出现预定的5秒延迟,证实了时间型SQL注入漏洞的存在:?sort=(SELECT 1371 FROM PG_SLEEP(5))
图1. 概念验证请求导致服务器响应延迟五秒。
另一个例子:?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日
致谢
该漏洞由一位资深技术专家在某次客户合作中发现。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)