CVE-2026-34986 Go JOSE affect by a panic in JWE decryption
An attacker can cause a denial of service by sending a malformed JWE object with an empty encrypted key, triggering a panic in the Go JOSE library.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-34986?
CVE-2026-34986 is a high-severity denial of service vulnerability in go-jose, published on 6 Apr 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Go JOSE provides an implementation of the Javascript Object Signing and Encryption set of standards in Go, including support for JSON Web Encryption (JWE), JSON Web Signature (JWS), and JSON Web Token (JWT) standards. Prior to 4.1.4 and 3.0.5, decrypting a JSON Web Encryption (JWE) object will panic if the alg field indicates a key wrapping algorithm (one ending in KW, with the exception of A128GCMKW, A192GCMKW, and A256GCMKW) and the encrypted_key field is empty. The panic happens when cipher.KeyUnwrap() in key_wrap.go attempts to allocate a slice with a zero or negative length based on the length of the encrypted_key. This code path is reachable from ParseEncrypted() / ParseEncryptedJSON() / ParseEncryptedCompact() followed by Decrypt() on the resulting object. Note that the parse functions take a list of accepted key algorithms. If the accepted key algorithms do not include any key wrapping algorithms, parsing will fail and the application will be unaffected. This panic is also reachable by calling cipher.KeyUnwrap() directly with any ciphertext parameter less than 16 bytes long, but calling this function directly is less common. Panics can lead to denial of service. This vulnerability is fixed in 4.1.4 and 3.0.5.
Which versions are affected by CVE-2026-34986?
8 open source packages ship an affected version, including github.com/go-jose/go-jose/v3, github.com/go-jose/go-jose and github.com/go-jose/go-jose/v4. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
github.com/go-jose/go-jose/v3 Go | All versions | 3.0.5 |
github.com/go-jose/go-jose/v3 Go | All versions | 3.0.5 |
github.com/go-jose/go-jose/v3 Go | All versions | 3.0.5 |
github.com/go-jose/go-jose Go | All versions to 2.6.3 | None |
github.com/go-jose/go-jose Go | All versions to 2.6.3 | None |
github.com/go-jose/go-jose/v4 Go | All versions | 4.1.4 |
2 more packages
github.com/go-jose/go-jose/v4 Go | All versions | 4.1.4 |
github.com/go-jose/go-jose/v4 Go | All versions | 4.1.4 |
Linux distribution packages (32)
buildah AlmaLinux:9 | All versions | 2:1.41.8-3.el9_7 |
buildah AlmaLinux:9 | All versions | 2:1.43.1-1.el9_8 |
buildah-tests AlmaLinux:9 | All versions | 2:1.41.8-3.el9_7 |
buildah-tests AlmaLinux:9 | All versions | 2:1.43.1-1.el9_8 |
podman AlmaLinux:9 | All versions | 6:5.8.2-1.el9_8 |
podman-docker AlmaLinux:9 | All versions | 6:5.8.2-1.el9_8 |
podman-plugins AlmaLinux:9 | All versions | 6:5.8.2-1.el9_8 |
podman-remote AlmaLinux:9 | All versions | 6:5.8.2-1.el9_8 |
podman-tests AlmaLinux:9 | All versions | 6:5.8.2-1.el9_8 |
buildah Red Hat:enterprise_linux:9::appstream | All versions | 2:1.41.8-3.el9_7 |
buildah Red Hat:enterprise_linux:9::appstream | All versions | 2:1.43.1-1.el9_8 |
buildah-debuginfo Red Hat:enterprise_linux:9::appstream | All versions | 2:1.41.8-3.el9_7 |
buildah-debuginfo Red Hat:enterprise_linux:9::appstream | All versions | 2:1.43.1-1.el9_8 |
buildah-debugsource Red Hat:enterprise_linux:9::appstream | All versions | 2:1.41.8-3.el9_7 |
buildah-debugsource Red Hat:enterprise_linux:9::appstream | All versions | 2:1.43.1-1.el9_8 |
buildah-tests Red Hat:enterprise_linux:9::appstream | All versions | 2:1.41.8-3.el9_7 |
buildah-tests Red Hat:enterprise_linux:9::appstream | All versions | 2:1.43.1-1.el9_8 |
buildah-tests-debuginfo Red Hat:enterprise_linux:9::appstream | All versions | 2:1.41.8-3.el9_7 |
buildah-tests-debuginfo Red Hat:enterprise_linux:9::appstream | All versions | 2:1.43.1-1.el9_8 |
podman Red Hat:enterprise_linux:9::appstream | All versions | 6:5.8.2-1.el9_8 |
podman-debuginfo Red Hat:enterprise_linux:9::appstream | All versions | 6:5.8.2-1.el9_8 |
podman-debugsource Red Hat:enterprise_linux:9::appstream | All versions | 6:5.8.2-1.el9_8 |
podman-docker Red Hat:enterprise_linux:9::appstream | All versions | 6:5.8.2-1.el9_8 |
podman-plugins Red Hat:enterprise_linux:9::appstream | All versions | 6:5.8.2-1.el9_8 |
podman-plugins-debuginfo Red Hat:enterprise_linux:9::appstream | All versions | 6:5.8.2-1.el9_8 |
podman-remote Red Hat:enterprise_linux:9::appstream | All versions | 6:5.8.2-1.el9_8 |
podman-remote-debuginfo Red Hat:enterprise_linux:9::appstream | All versions | 6:5.8.2-1.el9_8 |
podman-tests Red Hat:enterprise_linux:9::appstream | All versions | 6:5.8.2-1.el9_8 |
podman-tests-debuginfo Red Hat:enterprise_linux:9::appstream | All versions | 6:5.8.2-1.el9_8 |
osbuild-composer Red Hat:rhel_e4s:9.4::appstream | All versions | 0:101.3-4.el9_4.2 |
osbuild-composer-core Red Hat:rhel_e4s:9.4::appstream | All versions | 0:101.3-4.el9_4.2 |
osbuild-composer-core-debuginfo Red Hat:rhel_e4s:9.4::appstream | All versions | 0:101.3-4.el9_4.2 |
Products include Go-Jose Project Go-Jose.
How do I fix CVE-2026-34986?
Upgrade github.com/go-jose/go-jose/v3 to 3.0.5 or later.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2026-34986 being exploited?
There is no known exploitation of CVE-2026-34986 in the wild and no public exploit code.
Other vulnerabilities in go-jose
Sources
Also known as ALSA-2026:10135, ALSA-2026:19173, ALSA-2026:19186, CLEANSTART-2026-AW40573, CLEANSTART-2026-EI91095, CLEANSTART-2026-FW04887 and 427 more.