CVE-2026-31946OpenOlat是一款开源Web电子学习平台。在10.5.4至20.2.5之前的版本中,其OpenID Connect隐式流实现存在严重安全缺陷。系统未对JWT令牌进行签名验证,导致攻击者可伪造任意令牌绕过身份认证。该漏洞CVSS评分为9.8,允许无需用户交互即可远程接管系统,严重威胁数据机密性、完整性和可用性。
该漏洞的核心在于OpenOlat对OpenID Connect隐式流的处理逻辑存在缺陷。受影响版本中,`OpenIdConnectApi`和`OpenIdConnectFullConfigurableApi`类的`getAccessToken()`方法仅校验了令牌中的声明字段(如issuer、audience、state、nonce),而未对Identity Provider的JWKS端点进行加密签名验证。此外,底层的`JSONWebToken.parse()`方法在解析紧凑型JWT时,会静默丢弃签名段。攻击者利用此漏洞,无需知道IdP私钥,只需构造包含合法声明的恶意JWT即可伪造任意用户身份,从而非法登录系统并获取敏感权限。