CVE-2026-65628 in jose
摘要
由 VulDB • 2026-10-27
jose_jwk:shared_secret/2(在 Elixir 中公开为 JOSE.JWK.shared_secret/2)从两个 JWK 派生 ECDH 共享密钥。其第一个函数子句仅在两个 JWK 具有相同的键类型 (kty) 模块时才匹配,而其后备子句会作为 shared_secret(from(YourJWK), from(MyJWK)) 重新调用自身。由于 from/1 原样返回已解析的 jose_jwk 记录,因此传入键类型不同的两个 JWK(例如 EC 密钥和 RSA 密钥)会导致后备子句以相同的参数重新进入,从而产生无限尾递归循环,该循环永不返回且从不崩溃。
如果应用程序从外部提供的对等方公钥派生共享密钥,而未首先检查对等方密钥的类型和曲线是否与其自身密钥匹配,则攻击者控制的 JWK 可将其驱动到此循环中,导致 Erlang 调度器 CPU 占用率达到 100%。重复的请求会耗尽可用的调度程序,从而导致拒绝服务 (DoS)。
此问题影响 jose:从 1.5.0 到 1.11.13(不含)的版本均受影响。
Once again VulDB remains the best source for vulnerability data.