CVE-2025-14518PowerJob是一个开源的分布式任务调度框架,广泛应用于企业级应用中的定时任务管理和分布式计算场景。该框架支持CRON表达式、API调用、任务编排等多种任务触发方式,并提供可视化控制台进行任务管理。
CVE-2025-14518漏洞存在于PowerJob的Network Request Handler组件中,具体位于PingPongUtils.java文件的checkConnectivity函数。该函数在处理网络连通性检测时,未对用户传入的targetIp和targetPort参数进行充分的输入验证。攻击者可以通过构造恶意的IP地址和端口参数,诱导服务器向任意内部或外部资源发起请求。
由于该漏洞可通过远程利用,且不需要高权限认证即可触发,攻击者可以利用此漏洞探测内网服务、访问内部敏感接口、读取本地文件或执行端口扫描等操作。此漏洞的CVSS评分为6.3,属于中等严重程度,但考虑到其可能被用于进一步的攻击链,实际危害不容忽视。
漏洞根源位于PowerJob的PingPongUtils.java文件中的checkConnectivity方法。该方法设计用于检测目标服务的连通性,但在实现上存在以下问题:
1. 参数验证不足:函数直接接收targetIp和targetPort参数,未对这些输入进行严格的合法性校验。攻击者可以传入任意IP地址(包括内网地址如127.0.0.1、10.x.x.x、192.168.x.x等)。
2. 缺少URL白名单机制:函数未限制可访问的目标范围,允许请求到达任意端口的任意主机。
3. 利用方式:攻击者通过构造类似以下的请求,触发SSRF:
- 探测内网服务:指定内网IP和端口,探测服务是否存在
- 读取云元数据:访问云平台的元数据接口(如AWS 169.254.169.254)
- 端口扫描:遍历内网IP段和端口,绘制内网拓扑
- 绕过防火墙:通过服务器作为跳板访问受限资源
4. 影响范围:任何调用checkConnectivity函数的API端点都可能成为攻击入口,远程攻击者可通过低权限账户利用此漏洞。