CVE-2026-116585
NoneCVSS
—
EPSS
0.3%
Published
Oct 26, 2026
CISA due date
—
Cloudanix analysis
A security library used to handle encrypted messages can be tricked into crashing, briefly knocking services offline until they restart.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Decrypting attacker-supplied JWE ciphertext using A128CBC-HS256, A192CBC-HS384, or A256CBC-HS512 passes an empty buffer to CBC-HMAC unpadding, allowing an out-of-bounds index operation that triggers a Go panic.
Why it matters to the business
Applications accepting untrusted JWE tokens can be crashed on demand, producing denial-of-service conditions that interrupt services until the process restarts.
How an attack unfolds
An attacker generates a JWE object containing a zero-length ciphertext protected by one of the three CBC-HMAC algorithms, submits it to any decryption routine, and the library panics before returning a result.
How to fix it
Upgrade github.com/go-jose/go-jose/v4 to version 4.1.5 or later; if pinned to an earlier major version, apply the equivalent patch that rejects empty ciphertext buffers before CBC-HMAC processing.
How to confirm the fix worked
Confirm the go-jose module version is at least 4.1.5, then attempt decryption of a crafted zero-length JWE under the affected algorithms and verify the operation returns an error instead of panicking.
Typical attack path
- Identify an endpoint or API that decrypts attacker-controlled JWE objects
- Construct a JWE with empty ciphertext using A128CBC-HS256, A192CBC-HS384, or A256CBC-HS512
- Deliver the token to the decryption code path
- Observe process termination due to unhandled panic
How to detect it
Search application logs and crash reports for Go runtime panics originating from CBC-HMAC unpadding or jose ciphertext handling; correlate spikes in decryption errors with unusual JWE token sizes or algorithm identifiers.
What your security team should do
- Immediately update all Go modules that depend on go-jose to 4.1.5
- Audit code paths that call Decrypt or ParseEncrypted on untrusted input
- Add runtime guards or circuit breakers around JWE decryption to limit blast radius of crashes
- Monitor dependency scanners for any transitive consumers of the vulnerable versions
The record
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.5, decrypting untrusted JWE ciphertext with A128CBC-HS256, A192CBC-HS384, or A256CBC-HS512 can pass an empty ciphertext buffer to CBC-HMAC unpadding. Insufficient validation allows the empty buffer to be indexed, causing a panic and denial of service. Applications that decrypt attacker-controlled ciphertext with one of these content-encryption algorithms are affected. This issue is fixed in version 4.1.5.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-119299 gopacket provides packet processing capabilities for Go. CWE-129
- CVE-2026-119278 MariaDB Connector/J is used to connect applications developed in Java to MariaDB and… CWE-129
- CVE-2026-119143 Wasmtime 46.0.0 before 48.0.6 and 49.0.0 before 49.0.3 contains a denial of service… CWE-129
- CVE-2026-93862 An out-of-bounds read vulnerability in the FireCluster Sync processing allows an attacker… CWE-129
- CVE-2026-113881 A stack-based buffer overflow vulnerability in Fireware OS's VPN Network Access… CWE-129
- CVE-2026-116816 llama.cpp b5899 before b10261 contains a heap out-of-bounds write vulnerability in… CWE-129
- CVE-2024-58400 llama.cpp before b3701 contains an out-of-bounds read vulnerability in… CWE-129
- CVE-2026-116731 Furnace through 0.6.8.3 contains an out-of-bounds write vulnerability in… CWE-129