关键信息 标题 CRMeB v5.6.1 使用硬编码/弱加密密钥 (CWE-321 / CWE-798) 描述 CRMeB 使用弱的、可预测的默认 JWT HMAC 密钥值设置为 "default"。官方演示实例(v5.crmeb.net)和新部署使用相同的默认密钥。由于 HMAC 密钥已知且可预测,攻击者可以签署任意 HS256 JWT,服务器将接受。这允许伪造令牌以冒充任何用户(包括管理员),导致身份验证绕过、权限提升(管理员接管)和未经授权访问受保护的 API 和敏感业务数据。 再现步骤 1. 获取由 CRMeB 演示或部署的新 CRMeB 实例颁发的 JWT。 2. 确认 iss 声明(例如,v5.crmeb.net)在令牌负载中。 3. 使用已知的秘密 "default" 签署具有提升声明的 HS256 JWT(例如,{"jti":"id":5,"type":"admin"})。 4. 将伪造的令牌发送到 Authorization: Bearer 到受保护的管理端点——服务器接受令牌并授予访问权限。 证据 观察到的 JWT 来自演示:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...V3jebfZ2JPpflBT0TTu53rxSZfaNB4U-zusdikeJSFk(完整令牌可用)。 恢复的 HMAC 密钥:default。 iss 声明指向 v5.crmeb.net,确认演示来源。 影响 身份验证绕过(任何帐户冒充) 权限提升 / 管理员接管 未经授权访问和潜在的数据泄露 建议修复措施 移除硬编码/弱默认密钥。在安装时生成一个强随机 JWT 密钥,并要求管理员设置/轮换它。 使使用默认密钥签名的令牌无效,并添加关于密钥管理的文档/警告。