Pterodactyl SFTP 会话管理漏洞 CVE-2025-68954 深度解析

本文深入分析了 Pterodactyl 游戏服务器管理面板中存在的一个高危安全漏洞 CVE-2025-68954。该漏洞源于系统在服务器被删除或用户权限变更时,未能主动撤销已建立的 SFTP 连接,导致未授权文件访问风险。文章详细说明了漏洞的技术原理、影响范围及修复方案。

漏洞概述

CVE-2025-68954 是 Pterodactyl 游戏服务器管理面板中的一个安全漏洞,评级为 高危(CVSS 4.0 评分 7.5)。该漏洞的根本原因是:当服务器实例中的用户被移除或其文件访问权限被修改时,Pterodactyl 不会主动撤销已激活的 SFTP(SSH 文件传输协议)连接

这意味着,一个已被授权并建立了 SFTP 连接的用户,即使在面板中被移除了服务器访问权限或降低了权限,只要其 SFTP 连接未中断,仍能持续访问服务器的文件系统,直到连接因 Wings(Pterodactyl 的服务端控制平面)重启或用户手动断开而终止。

技术细节

漏洞存在于 Pterodactyl 的权限验证与会话管理机制中,具体涉及两个核心组件:

  • Panel: 基于 Web 的管理面板,负责用户身份验证和权限管理。
  • Wings: 用 Go 语言编写的服务器控制平面,为每个游戏服务器实例提供独立的运行环境和内置的 SFTP 服务器。

漏洞产生流程

  1. 初始连接与认证: 当用户尝试通过 Wings 的 SFTP 服务器连接到一个游戏服务器时,Wings 会向 Panel 发起一个 API 调用以验证用户凭证和权限。此次认证是连接建立的唯一检查点。
  2. 权限变更: 管理员随后在 Panel 中删除该用户修改其文件访问权限
  3. 会话持续: 由于 Wings 不会在连接建立后再次验证或检查用户会话的有效性,之前已建立的 SFTP 连接不会收到权限变更的通知,连接得以保持。
  4. 未授权访问: 该用户通过持续的 SFTP 会话,仍然可以读取、写入或删除其本应已无权访问的服务器文件

影响范围与限制

  • 受影响的版本: Panel 和 Wings 的 1.11.11 及之前的所有版本
  • 已修复的版本: Panel 和 Wings 的 1.12.0 版本。
  • 漏洞利用前提: 攻击者必须在权限被撤销的那一刻已经建立了有效的 SFTP 连接。如果一个用户在权限被撤销后才尝试连接,将无法通过认证。
  • 影响边界: 此漏洞仅限于通过 SFTP 子系统对特定游戏服务器本地文件系统的访问。不会暴露 Wings 控制平面的私有数据或其他服务器实例的数据。

修复方案

官方修复方案是将 Panel 和 Wings 升级到 1.12.0 或更高版本。该版本修复了会话管理逻辑,确保在用户权限发生变更时能正确终止相关的活跃会话。

相关参考信息

  • GitHub 安全公告: GHSA-8c39-xppg-479c
  • 官方修复提交: Panel 仓库的 2bd9d8b 提交
  • NVD 记录: CVE-2025-68954 (美国国家漏洞数据库)
  • 弱點枚举: 此漏洞被归类为 CWE-613: Insufficient Session Expiration(会话过期不充分)

补充说明

根据提供的其他资料:

  • Wings 组件介绍: Wings 是 Pterodactyl 的服务器控制平面,专为游戏行业设计,强调高性能与安全性。它提供了管理服务器实例、获取日志、生成备份和控制服务器生命周期的 HTTP API,并内置了 SFTP 服务器。
  • 版本更新内容: 在 Panel 的 v1.12.0 版本发布说明中,修复 CVE-2025-68954 被列为首要的修复项。该版本还一并修复了多个其他安全问题(如 CVE-2025-69197、CVE-2025-69198)及若干功能缺陷。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计