CVE-2026-34986Go JOSE库在4.1.4和3.0.5之前的版本中存在安全漏洞。当解密JWE对象时,若`alg`字段指示密钥包装算法(如A128KW等)且`encrypted_key`字段为空,会导致`cipher.KeyUnwrap`函数引发panic。攻击者无需认证即可利用此漏洞使目标应用崩溃,从而造成拒绝服务。
该漏洞位于Go JOSE库的`key_wrap.go`文件中的`cipher.KeyUnwrap()`函数。当应用程序使用`ParseEncrypted`、`ParseEncryptedJSON`或`ParseEncryptedCompact`解析JWE对象并随后调用`Decrypt`方法时,如果解析过程中接受的算法列表包含密钥包装算法(即以KW结尾的算法,但A128GCMKW、A192GCMKW和A256GCMKW除外),且传入的`encrypted_key`字段为空,`KeyUnwrap()`函数会尝试依据`encrypted_key`的长度分配切片。由于长度为零或负数,这将直接触发Go语言的运行时panic,导致程序异常终止。攻击者可利用此逻辑缺陷构造恶意数据包,无需任何权限即可远程发起拒绝服务攻击。