---
id: "CVE-2026-89318"
kind: "vulnerability"
aliases: ["CVE-2026-89318"]
title: "Go JWE library: wrong-sized IV crashes the decrypting process"
severity: "medium"
cvss: 6.9
epss: 0.00167
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["go", "jose", "jwe", "package"]
not_affected_if: []
published_at: "2026-10-23T09:17:08+00:00"
first_seen_at: "2026-10-23T21:57:32+00:00"
updated_at: "2026-10-25T03:38:33+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-89318", "first_seen_at": "2026-10-23T21:57:32+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-89318", "first_seen_at": "2026-10-24T07:15:51+00:00"}]
---

# Go JWE library: wrong-sized IV crashes the decrypting process

A JWE token with an initialization vector of the wrong length makes the decryptor pass it to the Go standard library's GCM Open, which panics instead of returning an error. An attacker who can send such a token crashes the goroutine doing the decryption.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- unknown

## Fix

- unknown

## Timeline

- 2026-10-23T21:57:32+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-89318
- 2026-10-24T07:15:51+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-89318

## From the sources

`JweRsaKeyEncryptionDecryptorImpl.Decrypt` passed the JWE's initialization vector to `cipher.AEAD.Open` without checking its length. The Go standard library **panics** rather than returning an error when a GCM nonce is not exactly `NonceSize()` bytes, so a JWE carrying a wrong-sized IV crashes the decrypting goroutine.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
