Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
🔗 CVE IDs covered (1)
📋 Description
Summary
An Allocation of Resources Without Limits or Throttling vulnerability in Plug.Conn.read_part_headers/2 allows an unauthenticated attacker to exhaust server memory by sending a crafted multipart/form-data request, causing a denial of service.
Details
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.
Impact
This is a denial-of-service vulnerability. Any application using Plug.Parsers with the :multipart parser, or calling Plug.Conn.read_part_headers/2 directly, is affected. An unauthenticated remote attacker can trigger the issue by sending crafted HTTP requests with no special privileges.
References
- Intro Commit: https://github.com/elixir-plug/plug/commit/c52b2f32c90bccd718202bafccb5f95594e30183
- Patch Commit: https://github.com/elixir-plug/plug/commit/d878b42efea9f12b243dc3e362a2ed048a798203
🎯 Affected products5
- erlang/plug:>= 1.4.0, < 1.15.4
- erlang/plug:>= 1.16.0, < 1.16.3
- erlang/plug:>= 1.17.0, < 1.17.1
- erlang/plug:>= 1.18.0, < 1.18.2
- erlang/plug:>= 1.19.0, < 1.19.2
🔗 References (11)
- https://github.com/elixir-plug/plug/security/advisories/GHSA-468c-vq7p-gh64
- https://nvd.nist.gov/vuln/detail/CVE-2026-8468
- https://github.com/elixir-plug/plug/commit/2cb7958d33030aa826b0c7404375844d4593d43a
- https://github.com/elixir-plug/plug/commit/33858427c7f2737d560a2e40a0c9a9270d77d1d7
- 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://cna.erlef.org/cves/CVE-2026-8466.html
- https://cna.erlef.org/cves/CVE-2026-8468.html
- https://osv.dev/vulnerability/EEF-CVE-2026-8468
- https://github.com/advisories/GHSA-468c-vq7p-gh64