CVE-2025-69197Pterodactyl是一款免费开源的游戏服务器管理面板,广泛应用于托管游戏服务器。2026年1月披露的安全漏洞显示,Pterodactyl Panel 1.11.11及以下版本存在严重的TOTP(基于时间的一次性密码)验证码重放安全问题。该漏洞允许攻击者在截获用户有效的2FA验证码后,在60秒的有效期内多次使用该验证码进行身份验证。攻击成功的关键前提是攻击者已经获取了目标用户的用户名和密码(可通过钓鱼、密码泄露等常见方式获得),然后通过屏幕共享、键盘记录或网络窃听等方式截获TOTP验证码。由于系统未对已使用的验证码进行充分的状态标记,攻击者可以在验证码有效期内重复使用同一个验证码建立多个会话。此问题已被官方在1.12.0版本中修复,但未升级的用户仍面临被攻击的风险。
Pterodactyl Panel采用TOTP标准实现双因素认证(2FA)功能。正常登录流程为:用户首先输入用户名和密码进行第一阶段认证,系统验证通过后要求用户输入6位TOTP验证码(通常由Google Authenticator等应用生成,每30秒更新一次)。用户输入验证码后,系统验证其有效性,验证通过后建立用户会话。漏洞存在于验证码验证环节的实现中:代码虽然包含`isUsed`等标记机制用于跟踪验证码使用状态,但在实际验证过程中未能正确地将已验证的验证码标记为已使用。具体表现为:系统接收到验证码后仅检查其时间有效性和HMAC签名正确性,但验证完成后未更新验证码的状态字段,导致同一验证码在完整的60秒有效窗口内可以被重复使用。攻击者获取到验证码后(常见场景包括:用户在进行屏幕共享时泄露、攻击者通过键盘记录器捕获、或在网络传输中被嗅探),即可在60秒内使用相同的用户名、密码和验证码组合多次发起登录请求,每次请求都会被系统接受并建立新的会话。修复方案(commit 032bf076d92bb2f929fa69c1bac1b89f26b8badf)确保了验证码在验证通过后立即被标记为已使用,防止重复利用。