GHSA-874m-fcc5-9gqf
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend crafted multipart/form-data request
-
DeliveryShrink remaining limit below 400 bytes
-
ExploitSupply arbitrarily long line in part
-
ExecutionParser bypasses memory cap
-
ImpactMemory exhaustion crashes service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target application parse untrusted multipart/form-data input using Go's mime/multipart (e.g., via net/http Request.ParseMultipartForm / Request.FormFile) on an affected runtime (Go <1.27.2 or <1.26.9). The specific trigger is that the remaining multipart memory limit at the start of a part must be less than 400 bytes, at which point an arbitrarily long line is read into memory bypassing the cap - an attacker can shape the request to reach this state, so it is not a non-default configuration but an inherent parser condition. The practical limiting factor is exposure: only services that accept and parse attacker-supplied multipart forms are reachable; purely internal or non-multipart endpoints are not affected, and applying the patched Go version fully removes the condition. |
| Impact | This is a memory-exhaustion denial-of-service flaw (CWE-770) in the Go standard library's mime/multipart and net/textproto packages, where multipart form parsing can bypass memory limits and read an arbitrarily long line into memory when the remaining limit at the start of a part is under 400 bytes. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, 7.5) indicates remote, unauthenticated, low-complexity exploitation with high availability impact and no confidentiality/integrity impact - fully consistent with a DoS. Signals are coherent but point to a moderate, not urgent, priority: EPSS is low (0.18%, 7th percentile), SSVC reports Exploitation=none (no observed exploitation) and Technical Impact=partial, and the vulnerability is NOT in CISA KEV. The one amplifying signal is SSVC Automatable=yes, meaning the attack can be scripted and fired broadly against any exposed multipart endpoint. Net: a genuinely widespread but low-severity-outcome issue (resource exhaustion, not RCE or data loss) affecting a ubiquitous language runtime - patch it as routine dependency hygiene rather than emergency response, prioritizing internet-facing Go services that accept file/form uploads. |
| Exploit ScenarioDerived | An attacker sends a crafted multipart/form-data HTTP request to any internet-facing Go service that parses multipart forms (e.g., a file-upload or form endpoint), structuring parts so the remaining memory limit at the start of a part falls below 400 bytes, then supplying an extremely long header line. The parser bypasses the intended memory cap and buffers the oversized line, driving memory consumption up and potentially crashing the process or causing OOM-based service disruption. No public exploit identified at time of analysis, but the condition is attacker-controllable and SSVC flags the attack as automatable. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 09, 2026
Unauthenticated remote attackers can exhaust server memory in applications built on the Go standard library by submitting crafted multipart/form-data requests, because the mime/multipart parser reads an arbitrarily long line into memory whenever the remaining memory limit at the start of a part drops below 400 bytes. Affected runtimes are Go releases prior to 1.27.2 and prior to 1.26.9, including the mime/multipart and net/textproto packages; any service that parses attacker-supplied multipart forms - for example via net/http Request.ParseMultipartForm or Request.FormFile - is reachable, while internal or non-multipart endpoints are not. This is a denial-of-service (CWE-770) issue with no confirmed active exploitation and no public exploit code identified at time of analysis; EPSS is 0.18% (7th percentile), CISA SSVC rates exploitation as none with partial technical impact, and the vendor has shipped patched releases.
Earlier versions of this analysis (1)
Unauthenticated remote attackers can exhaust memory in Go applications that parse attacker-supplied multipart/form-data, because the standard library's net/textproto and mime/multipart code fails to enforce the configured form memory limit when the remaining limit at the start of a part drops below 400 bytes. The affected code ships with the Go toolchain, so any HTTP/1 or HTTP/2 server built with Go 1.27.x before 1.27.2, or Go 1.26.x before 1.26.9, and exposing a multipart-parsing endpoint is vulnerable. Impact is limited to availability: the independently assessed CVSS 3.1 vector is AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L, with no code execution or data disclosure. No public exploit code has been identified at time of analysis and the issue is not in CISA KEV; the fix is included in the Go 1.27.2 and 1.26.9 releases.
RemediationAI
Upgrade to a patched Go toolchain - Go 1.27.2 or Go 1.26.9 - then rebuild and redeploy every affected binary, since the vulnerability is compiled into the runtime rather than fixed by configuration; confirm the updated module versions against https://pkg.go.dev/vuln/GO-2026-6608 and the announcement at https://groups.google.com/g/golang-announce/c/U2fTuyDJznI, and track the upstream fix at https://go.dev/cl/847307. If immediate recompilation is not possible, apply compensating controls at the application and edge layers: wrap request bodies in http.MaxBytesReader with a hard ceiling before calling ParseMultipartForm, pass the smallest viable maxMemory value to ParseMultipartForm and cap Request.MaxHeaderBytes, and block oversized bodies at a reverse proxy or load balancer using client_max_body_size / request-body limits. The trade-off is that aggressive body-size limits will cause legitimate large uploads to fail and can be evaded by slow or chunked senders, so limits need to be tuned per endpoint rather than set globally; disabling multipart upload endpoints entirely where they are not required removes exposure at the cost of functionality. Note that no vendor-released patch version exists for a currently unsupported Go branch, so unsupported releases should be migrated to 1.26.9 or later rather than individually patched.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 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
The flaw lives in the Go standard library's multipart form handling stack, specifically the mime/multipart parser and its net/textproto line/header reading primitives. CWE-770 (Allocation of Resources Without Limits or Throttling) describes the root cause class: the parser is supposed to honour a caller-supplied memory budget (the maxMemory parameter of ParseMultipartForm and the internal per-part accounting), but the boundary check is insufficient. When the remaining allowance at the beginning of a multipart part is less than 400 bytes - a condition an attacker can deliberately shape by padding earlier parts and headers - the parser falls through to a read path that consumes an arbitrarily long line without re-checking the cap, so a single oversized line is buffered entirely in memory. Because the check is a structural property of how parts are consumed rather than a misconfiguration, any application that feeds untrusted multipart bodies to an affected runtime inherits the condition. The same code path is shared through net/textproto, which is why both modules are listed in the EUVD range data as affected: mime/multipart and net/textproto in the 1.27.x line before 1.27.2 and in earlier lines before 1.26.9. CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H with PR:N confirms unauthenticated network reachability, and the complete absence of confidentiality/integrity impact with a high availability impact is consistent with a pure memory-exhaustion availability attack.
Know when Golang gets its next vulnerability
- 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Remote unauthenticated attacker sends crafted multipart data (AV:N, PR:N, UI:N); condition is attacker-reachable (AC:L); only availability affected via memory exhaustion (C:N/I:N/A:H).
Primary rating from Vendor (CNA).
CVSS VectorVendor
Lifecycle Timeline
3Description PRE-NVD
Executive ViewAI
Organizations using the Go standard library for web services that parse multipart form data face a denial-of-service risk from CVE-2026-94440. Attackers can exhaust server memory through crafted requests, potentially causing service outages. With Go widely adopted in cloud-native and microservices architectures, leadership should prioritize patching to maintain availability of customer-facing and internal applications.
Apply vendor patch.
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot
The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and there
Erugo file-sharing platform up to version 0.2.14 has a CVSS 10.0 path traversal allowing authenticated users to read any
Critical certificate validation bypass in Go crypto/tls during session resumption. If ClientCAs or RootCAs fields are mu
WAGO PFC200 G2 PLC (firmware affected) allows privilege escalation through cookie manipulation. Users can modify cookie
Authentication bypass in WeGIA charitable institution management system before 3.6.5. The adicionar_tipo_docs_atendido.p
CGI path splitting vulnerability in FrankenPHP before 1.11.2 — Unicode characters bypass path validation during CGI proc
net/url in Go before 1.11.13 and 1.12.x before 1.12.8 mishandles malformed hosts in URLs, leading to an authorization by
Free5gc NRF 1.4.0 has an authorization bypass in access token generation that allows authenticated users to request toke
Algo 8028 Control Panel version 3.3.3 contains a command injection vulnerability in the fm-data.lua endpoint that allows
Denial of service in PocketBase versions prior to 0.22.48 (0.22.x branch) and 0.23.0 through 0.39.6 (0.23.0+ branch) all
EUVD-2026-95423
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB