CVE-2026-33746Convoy是一个用于托管业务的KVM服务器管理面板。在3.9.0-beta至4.5.1之前的版本中,JWTService::decode()方法存在严重安全缺陷。虽然配置了HMAC-SHA256签名者,但在验证步骤中未包含SignedWith约束,仅验证了时间相关的声明。这意味着攻击者可以伪造或篡改JWT令牌的有效载荷,例如修改user_uuid声明,从而绕过SSO认证流程,以任意用户身份登录系统。
该漏洞的根源在于Convoy面板使用了lcobucci/jwt库处理JSON Web Token,但在JWTService::decode()方法的实现逻辑中存在严重疏忽。开发者在代码中配置了对称HMAC-SHA256签名者,但在令牌验证阶段仅使用了StrictValidAt约束来检查令牌的过期时间、生效时间和签发时间,却遗漏了用于验证加密签名的SignedWith约束。这意味着服务端在接收JWT令牌时,虽然解析了令牌内容,但并未验证令牌是否由合法密钥签名。攻击者无需知道服务端的HMAC密钥,即可通过编码工具构造任意Payload的JWT令牌。在SSO登录流程(LoginController::authorizeToken)中,系统直接信任了解码后的令牌数据。攻击者只需将令牌中的user_uuid字段修改为目标管理员的UUID,并确保时间戳在有效范围内,即可绕过身份验证,以任意用户身份登录系统,获取最高权限。