返回首页

CVE-2024-51378 CyberPanel:RCE 漏洞

在 CyberPanel 至 2.3.7 版本中,通过 getresetstatus 端点发现 RCE 漏洞 CVE-2024-51378。本文涵盖搭建测试环境、PoC 利用以及修补建议,以防止服务器被攻破。

CyberPanel 中的 RCE:认证绕过和 root 访问 CVE-2024-51378
Advertisement 728x90

CyberPanel 中的命令注入漏洞 CVE-2024-51378:分析与利用

CyberPanel 2.3.7 及更早版本中发现了一个命令注入漏洞(CVE-2024-51378)。攻击者可以通过 /dns/getresetstatus/ftp/getresetstatus 端点绕过身份验证并执行任意命令。该问题位于 dns/views.pyftp/views.py 文件中。这允许攻击者无需授权即可完全控制服务器。

CyberPanel:用途与架构

CyberPanel 是一个基于 OpenLiteSpeed 的开源 Web 托管控制面板。它通过 8090 端口的 Web 界面管理域名、数据库、FTP、电子邮件和 DNS。在托管提供商和开发者中广受欢迎,因为它能与现代技术栈无缝集成。

该漏洞影响安装了该面板的 Ubuntu/Debian 服务器。攻击者可以获得 root 权限,从而危及所有托管服务。

Google AdInline article slot

搭建测试环境

要验证该漏洞,请启动一台安装 Ubuntu 的 VPS 并安装易受攻击的 CyberPanel 版本:

  • 更新软件包:
apt-get update
  • 安装 wget 并下载安装程序:
apt install wget
cd /opt
wget -O installer.sh https://cyberpanel.net/install.sh
  • 运行安装:
chmod +x installer.sh
sh installer.sh

重启后,打开 https://<IP>:8090 进行设置。这将创建一个带有易受攻击端点的测试环境。

漏洞技术分析

远程代码执行源于 /dns/getresetstatus/ftp/getresetstatus 处理程序中输入验证不足。查询参数直接传递给 shell 命令而未进行适当转义,从而启用注入。

Google AdInline article slot

使用公开 PoC 的示例利用:

git clone https://github.com/refr4g/CVE-2024-51378.git
cd CVE-2024-51378
python3 CVE-2024-51378.py http://target.com:8090 /ftp/getresetstatus

该脚本发送精心构造的请求,在服务器上执行负载。结果是反向 shell 或 root 级命令执行。在测试环境中,这可用于提取 flag 或持久化。

关键攻击向量:

Google AdInline article slot
  • 无需凭据即可绕过身份验证。
  • 使用用户控制输入执行 os.system()
  • 由于面板上下文,提升权限至 root。

影响指标与检测

该漏洞 CVSS 评分为 9.8(严重),影响 2.3.7 补丁前的所有安装。要检测它,请检查 /home/cyberpanel/logs/ 中的日志,寻找可疑的 /getresetstatus 请求,或监控 8090 端口流量。

验证步骤:

  • 检查版本:cyberpanel version
  • 使用 curl 测试端点:curl 'http://target:8090/ftp/getresetstatus?param=;id'。如果返回 uid=0(root),则存在漏洞。
  • 使用 Nuclei 等扫描器配合 CVE-2024-51378 模板。

修复措施

  • 更新至 2.3.7+ 并应用补丁:按照面板或 CLI 说明操作。
  • 限制访问:防火墙限制 8090 端口(例如 ufw allow from IP-range),或使用 VPN。
  • 部署 ModSecurity 等 WAF 阻止注入。
  • 审计:grep -r 'getresetstatus' /usr/local/CyberCP/ 检查自定义修改。

定期更新并遵循最小权限原则有助于降低风险。

关键要点

  • 该漏洞允许在 ≤2.3.7 版本中通过 /dns/getresetstatus/ftp/getresetstatus 无需身份验证实现远程代码执行。
  • 已发布补丁;生产环境需立即更新。
  • 打补丁前使用 PoC 测试环境,避免误报。
  • 监控 8090 端口和日志中的命令注入模式。
  • 通过防火墙/VPN 限制外部面板访问。

— Editorial Team

Advertisement 728x90

继续阅读