CVE-2025-68954Pterodactyl是一款免费开源的游戏服务器管理面板,广泛应用于托管Minecraft、CSGO、Rust等游戏服务器。该面板提供了完整的Web界面用于管理游戏服务器、数据库、SFTP文件传输等功能。
本次发现的漏洞存在于Pterodactyl Panel的SFTP连接管理机制中。具体问题在于:当管理员通过面板移除某个用户对特定服务器实例的访问权限,或者修改该用户的文件访问权限时,系统未能正确终止该用户已建立的SFTP连接。这导致被撤销权限的用户仍然可以通过已有的SFTP会话继续访问和操作服务器文件系统。
漏洞的利用前提是用户必须在权限撤销时保持SFTP连接处于活动状态。一旦用户成功建立SFTP连接,即使后续被管理员从服务器实例中移除或被限制文件访问权限,该连接仍然保持有效,构成持续的安全风险。
此漏洞可能导致的危害包括:未授权文件访问、数据泄露、恶意文件上传、配置文件篡改等。对于托管多个客户游戏服务器的运营商而言,该漏洞可能导致客户间的数据隔离失效,造成严重的隐私和安全问题。
漏洞原理分析:
Pterodactyl Panel的SFTP服务采用守护进程(daemon)架构,Web面板通过API与守护进程通信管理服务器实例。SFTP连接建立后,实际的文件传输操作由守护进程处理,而非Web面板直接控制。
问题出在权限验证机制上:
1. **连接建立阶段**:用户发起SFTP连接请求时,系统验证用户凭证和权限,验证通过后建立连接并启动SFTP会话。
2. **权限变更阶段**:当管理员撤销用户权限或修改访问控制列表(ACL)时,Web面板更新数据库中的权限记录,但**未向守护进程发送连接终止信号**。
3. **持续访问阶段**:已建立的SFTP连接在会话有效期内(通常由SSH KeepAlive配置决定)保持活跃,守护进程仅在连接建立时验证权限,不会在后续操作中重新检查用户权限状态。
攻击利用方式:
攻击者需要首先获得有效的SFTP访问权限,然后维持SFTP连接。在获得合法访问期间,等待管理员撤销权限或修改访问控制。一旦权限被撤销,攻击者利用已建立的连接继续执行文件操作,包括读取敏感配置文件、上传恶意脚本、修改服务器配置等。
修复方案涉及在权限变更时向相关守护进程推送权限撤销事件,强制终止受影响用户的活动连接。