Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend HTTP/1.1 chunked oversized request
-
ExploitBodyDump captures prefix and drains remainder ignoring overflow error
-
ExecutionHandler processes truncated body as valid
-
ImpactConfigured BodyLimit silently bypassed
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Return value checking
|
| Exploitation Conditions | Exploitation requires an application built on Echo v5 (5.0.0-5.4.0) that enables the BodyDump middleware with its MaxRequestBytes capture limit set BELOW the enforced BodyLimit threshold, and the attacker must send an unknown-length request - specifically an HTTP/1.1 chunked request - whose body exceeds BodyLimit. Limiting factors: known-length (Content-Length) requests are rejected before BodyDump runs and are unaffected; the vulnerable path only exists when BodyDump's capture cap is below BodyLimit (a non-default, operator-chosen combination); and impact is confined to bypassing the size policy, not authentication or availability. Workarounds per the advisory: disable BodyDump on affected routes, or set the capture limit above the enforced body limit so the overflow is detected during initial capture. |
| Impact | This is a genuinely medium/low-priority issue, not a high-severity emergency. The CVSS 4.0 score of 6.3 (vendor/NVD) reflects a network-reachable, unauthenticated flaw (AV:N, PR:N, UI:N) but with AT:P - an attack requirement - and only low integrity impact (VI:L; VC:N, VA:N). No CISA KEV listing and no EPSS score are provided, and no public exploit code is referenced beyond the patch commit, PR, release, and GHSA advisory. The vuln.today decision label is 'this_month', consistent with a conditional, bounded bug rather than act-now urgency. Importantly, the input Tags 'Authentication Bypass' and 'Denial Of Service' directly conflict with the GHSA advisory, which explicitly states 'no general authentication bypass, production data modification or denial of service is claimed' - treat those tags as inaccurate. The real impact is a conditional request-size-policy bypass that only manifests under a specific non-default middleware configuration, so despite the network vector this is a targeted, low-probability concern rather than a widespread exploitation risk. |
| Exploit ScenarioDerived | An application runs Echo v5 (5.0.0-5.4.0) with BodyDump middleware whose capture limit (MaxRequestBytes) is set below the configured BodyLimit. An attacker sends an HTTP/1.1 chunked (unknown-length) request whose body exceeds BodyLimit; BodyDump drains the remainder while ignoring the read error and hands the handler the captured prefix, so the oversized request is truncated and processed as successful instead of being rejected. No public exploit code is identified at time of analysis; the only referenced code is the fix commit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Size-policy bypass in Echo v5's BodyDump middleware: when the middleware's capture cap is set below an outer BodyLimit threshold, an HTTP/1.1 chunked request whose body exceeds the limit is drained with read errors ignored and then replaced by the captured prefix, so the handler processes a truncated body and returns success. Only applications on Echo v5.0.0 through v5.4.0 that combine BodyDump with MaxRequestBytes below BodyLimit are exposed; known-length requests are rejected before BodyDump runs, and the advisory explicitly disclaims general authentication bypass, data modification or denial of service. No public exploit code or confirmed active exploitation was identified at time of analysis, and the vendor fixed the behaviour in v5.4.1; the assessed severity is medium/low rather than an emergency.
RemediationAI
Vendor-released patch: upgrade to Echo v5.4.1, which is the version named in both the advisory and the release reference (https://github.com/labstack/echo/releases/tag/v5.4.1), incorporating the fix commit 1855061e572ae9dab727c811d8382f266bfbaaec and request-body preservation work from PR https://github.com/labstack/echo/pull/3105; upgrading also restores the complete body to downstream handlers. If an immediate upgrade is not possible, the advisory's workarounds are to disable BodyDump on affected routes (trade-off: losing request/response body logging and the audit trail that middleware provides) or to set BodyDump's MaxRequestBytes capture limit above the enforced BodyLimit so the overflow is detected during the initial capture rather than during the drain (trade-off: larger captured prefixes and higher per-request memory and log volume); in that configuration the capture cap remains a logging cap and not an application body limit. Applications must still consume the request body and handle read errors themselves for streaming BodyLimit enforcement to hold, since middleware enforcement depends on errors propagating out of the handler's read path. The vendor states that upgrading is the recommended fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Echo is a Go web framework built on net/http, and the flaw is an unchecked return value (CWE-252) in the middleware/body_dump.go request-capture path. BodyDump read a bounded prefix of the request body for logging, then ran io.Copy(io.Discard, c.Request().Body) and closed the stream while discarding any error from that drain, and finally replaced c.Request().Body with the captured prefix. Because BodyLimit can pre-reject only requests whose Content-Length is known, a chunked request arrives with ContentLength -1 (TransferEncoding: chunked) and the limit must be enforced while the body is streamed; the overflow therefore surfaced during BodyDump's drain, where the error was silently dropped. The fix commit 1855061e572ae9dab727c811d8382f266bfbaaec reconstructs the handler's reader as io.MultiReader(bytes.NewReader(reqBody), c.Request().Body) with the original closer, preserving the unread stream and its read errors, and also restores the original response writer via defer c.SetResponse(origResponse). Package coordinates are go/github.com/labstack/echo/v5. Note that the same commit also carries changes and tests for X-Real-IP trust handling in ip.go; that IP-extraction work is separate from the BodyDump issue scoped here and should be reviewed on its own terms.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Network-reachable and unauthenticated (AV:N/PR:N/UI:N), but the overflow discard depends on a specific BodyDump-below-BodyLimit config plus chunked encoding, so AC:H; only a low integrity (size-policy) impact, no C or A.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.org
Echo is a Go web framework. From 5.0.0 until 5.4.1, Echo v5's BodyDump middleware can discard a BodyLimit overflow error for an unknown-length request when BodyDump's capture limit is below the BodyLimit threshold. BodyDump drains the remaining body while ignoring read errors and replaces it with the captured prefix, so an HTTP/1.1 chunked request can be truncated and processed successfully even though the original body exceeded the configured limit. Known-length requests rejected before BodyDump runs are unaffected, and the issue does not establish a general authentication bypass or denial of service. This issue is fixed in 5.4.1.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
EUVD-2026-112395
NVD
CVE.org
GitHub
Exploit-DB