CVE-2025-56749CVE-2025-56749是Creativeitem Academy LMS学习管理系统中的一个严重安全漏洞,CVSS评分高达9.4,属于严重级别。该漏洞存在于Academy LMS 6.14及以下所有版本中,源于系统在JWT(JSON Web Token)签名过程中使用了硬编码的默认密钥。JWT是一种广泛用于Web应用中进行身份验证和授权的令牌机制,其安全性完全依赖于签名密钥的保密性。当密钥被硬编码在源代码中或使用可预测的默认值时,攻击者可以通过逆向工程或源代码审计轻易获取该密钥,进而伪造任意用户的JWT令牌,实现完全的身份验证绕过。
该漏洞的影响极为严重,攻击者无需任何认证凭据即可通过网络远程利用,攻击复杂度低,无需用户交互。一旦成功利用,攻击者可以伪造管理员或其他任意用户的JWT令牌,从而获得对系统的未授权访问权限。这可能导致敏感数据泄露、用户账户被接管、系统配置被篡改,甚至完全控制整个学习管理平台。由于Academy LMS通常用于在线教育机构,包含大量学生和教师的个人信息和课程数据,该漏洞的影响范围可能非常广泛。该漏洞已于2025年10月15日公开披露,发现者为[email protected]。
Academy LMS使用JWT(JSON Web Token)机制进行用户身份验证和会话管理。JWT通常由三部分组成:Header(头部)、Payload(载荷)和Signature(签名),其中签名部分使用HMAC-SHA256等算法结合一个密钥(secret)对Header和Payload进行计算生成。
漏洞的根本原因在于Academy LMS 6.14及以下版本在JWT签名时使用了硬编码的默认密钥。这意味着无论部署者在安装时是否修改了配置,系统内部仍然使用一个固定的、可预测的密钥字符串来签署所有JWT令牌。攻击者只需通过以下步骤即可利用此漏洞:
1. 获取硬编码的JWT密钥(可通过源代码审计、公开的GitHub仓库、反编译或其他渠道获取)。
2. 构造一个包含目标用户身份信息(如user_id、role等)的JWT Payload。
3. 使用获取的硬编码密钥对Payload进行HMAC-SHA256签名,生成伪造的JWT令牌。
4. 在HTTP请求的Authorization头中携带该伪造令牌(通常格式为Bearer <token>)。
5. 服务器验证JWT签名时,由于使用的是相同的硬编码密钥,验证通过,攻击者成功以目标用户身份登录。
此漏洞的攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需任何权限(PR:N),无需用户交互(UI:N),对机密性和完整性影响均为高,对可用性影响为低。