Unbounded buffer accumulation in multipart header parsing causes denial of service in plug
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-770.
Summary
Allocation of Resources Without Limits or Throttling vulnerability in plug_project plug allows denial of service via unbounded buffer accumulation in multipart header parsing. 'Elixir.Plug.Conn':read_part_headers/2 in lib/plug/conn.ex does not obey its :length parameter. There is no upper bound on the size of the accumulated buffer. By contrast, the sibling function read_part_body has an explicit byte_size(acc) > length guard that stops accumulation once a limit is reached. No such guard exists in read_part_headers. An unauthenticated remote attacker can exhaust server memory by sending a crafted multipart/form-data request, causing a denial of service. This issue affects plug from 1.4.0 before 1.15.4, 1.16.3, 1.17.1, 1.18.2, and 1.19.2.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| elixir-plug | plug | 1.4.0 to before 1.15.4; 1.16.0 to before 1.16.3; 1.17.0 to before 1.17.1; 1.18.0 to before 1.18.2; 1.19.0 to before 1.19.2 | 1.15.4, 1.16.3, 1.17.1, 1.18.2, 1.19.2 | Patch available | CNA |
| — | plug (Hex) | 1.4.0 to before 1.15.4 | 1.15.4 | Patch available | GHSA-468c-vq7p-gh64 |
| — | plug (Hex) | 1.16.0 to before 1.16.3 | 1.16.3 | Patch available | GHSA-468c-vq7p-gh64 |
| — | plug (Hex) | 1.17.0 to before 1.17.1 | 1.17.1 | Patch available | GHSA-468c-vq7p-gh64 |
| — | plug (Hex) | 1.18.0 to before 1.18.2 | 1.18.2 | Patch available | GHSA-468c-vq7p-gh64 |
| — | plug (Hex) | 1.19.0 to before 1.19.2 | 1.19.2 | Patch available | GHSA-468c-vq7p-gh64 |
- plug Vendorelixir-plug Affected 1.4.0 to before 1.15.4; 1.16.0 to before 1.16.3; 1.17.0 to before 1.17.1; 1.18.0 to before 1.18.2; 1.19.0 to before 1.19.2 Fixed in 1.15.4, 1.16.3, 1.17.1, 1.18.2, 1.19.2 Patch available CNA
- plug (Hex) Vendor— Affected 1.4.0 to before 1.15.4 Fixed in 1.15.4 Patch available GHSA-468c-vq7p-gh64
- plug (Hex) Vendor— Affected 1.16.0 to before 1.16.3 Fixed in 1.16.3 Patch available GHSA-468c-vq7p-gh64
- plug (Hex) Vendor— Affected 1.17.0 to before 1.17.1 Fixed in 1.17.1 Patch available GHSA-468c-vq7p-gh64
- plug (Hex) Vendor— Affected 1.18.0 to before 1.18.2 Fixed in 1.18.2 Patch available GHSA-468c-vq7p-gh64
- plug (Hex) Vendor— Affected 1.19.0 to before 1.19.2 Fixed in 1.19.2 Patch available GHSA-468c-vq7p-gh64
CPE names CNA · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:plug_project:plug:*:*:*:*:*:*:*:* | — | — | Plug Project |
- cpe:2.3:a:plug_project:plug:*:*:*:*:*:*:*:* Versions — — ·Plug Project
Remediation
- Fix · CNA plug (elixir-plug) Fixed in 1.15.4, 1.16.3, 1.17.1, 1.18.2, 1.19.2
- Fix · GHSA-468c-vq7p-gh64 plug (Hex) Fixed in 1.15.4 Advisory →
- Fix · GHSA-468c-vq7p-gh64 plug (Hex) Fixed in 1.16.3 Advisory →
- Fix · GHSA-468c-vq7p-gh64 plug (Hex) Fixed in 1.17.1 Advisory →
- Fix · GHSA-468c-vq7p-gh64 plug (Hex) Fixed in 1.18.2 Advisory →
- Fix · GHSA-468c-vq7p-gh64 plug (Hex) Fixed in 1.19.2 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-8468
- 2026-10-03 Alias added: GHSA-468c-vq7p-gh64
- 2026-10-25 EPSS moved to the below the 50th percentile
References
Patch 5
- https://github.com/elixir-plug/plug/commit/2cb7958d33030aa826b0c7404375844d4593d43a
- https://github.com/elixir-plug/plug/commit/aa69c5ece99c40ded88b8c6581ecc86664b0b734
- https://github.com/elixir-plug/plug/commit/d5dfffe25e975585227b1b85d247b0d14164bc45
- https://github.com/elixir-plug/plug/commit/df812a1527bae9e941965e897308a2b8bbf83a94
- https://github.com/elixir-plug/plug/commit/33858427c7f2737d560a2e40a0c9a9270d77d1d7
Advisory 2
More elixir-plug vulnerabilities
- TI-2026-39665 Plug: quadratic-time decoding of nested query/body parameters enables denial of service CVSS 4.0HIGH 8.7
- TI-2026-25180 Atom table exhaustion via HTTP/2 :scheme pseudo-header in plug_cowboy CVSS 4.0HIGH 8.7
- TI-2026-40967 Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service) CVSS 4.0MEDIUM 6.9
- TI-2026-79606 Secret key base leaks into logs via wrong-typed Plug.Crypto arguments CVSS 4.0MEDIUM 5.1
- TI-2026-40966 Cookie attribute injection in Plug.Conn.Cookies.encode/2 CVSS 4.0LOW 2.1
Sources
- CVE-2026-8468 · CVE Program
- CVE-2026-8468 · NVD
- FIRST EPSS
- GHSA-468c-vq7p-gh64 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences