Read the docs
TI-2026-40967 Aliases CVE-2026-56814

Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)

Priority LOW 39CWE-770Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
Denial of service
Confidentiality · integrity · availability
None · None · Low
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-770.

Summary

Plug.Parsers.MULTIPART, the multipart request-body parser used to handle file uploads and multipart forms, does not enforce its :length budget against all consumed resources, allowing an unauthenticated remote attacker to cause denial of service. The parser charges the :length limit only for part body bytes; part header bytes are never counted, and a part with an empty body costs zero. Because every part whose Content-Disposition carries a non-empty filename creates a fresh temporary file (via Plug.Upload) and retains a Plug.Upload struct for the duration of the request, an attacker can send a single request composed of many empty-body file parts. Such a request stays well under the configured :length limit (8,000,000 bytes by default) while creating one temporary file per part, leading to inode and disk exhaustion and unbounded memory growth. Any application using Plug.Parsers with the :multipart parser is affected, and no authentication is required, only reachability of a multipart endpoint over HTTP. This vulnerability is associated with program files lib/plug/parsers/multipart.ex and program routines Plug.Parsers.MULTIPART.parse_multipart/2, Plug.Parsers.MULTIPART.parse_multipart_headers/5, Plug.Parsers.MULTIPART.parse_multipart_body/4, and Plug.Parsers.MULTIPART.parse_multipart_file/4. This issue affects plug: from 1.4.0-rc.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.1 before 1.19.5, and from 1.20.0 before 1.20.3.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.0108 65th percentileScored 2026-11-07
Fix Fixed plug (elixir-plug): 1.16.6, 1.17.4, 1.18.5 +2

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
elixir-plugplug1.4.0-rc.0 to before 1.16.6; 1.17.0 to before 1.17.4; 1.18.0 to before 1.18.5; 1.19.1 to before 1.19.5; 1.20.0 to before 1.20.31.16.6, 1.17.4, 1.18.5, 1.19.5, 1.20.3Patch availableCNA
  • plug Vendorelixir-plug Affected 1.4.0-rc.0 to before 1.16.6; 1.17.0 to before 1.17.4; 1.18.0 to before 1.18.5; 1.19.1 to before 1.19.5; 1.20.0 to before 1.20.3 Fixed in 1.16.6, 1.17.4, 1.18.5, 1.19.5, 1.20.3 Patch available CNA

CPE names CNA · 1

CPEVersionsRoleVendor
cpe:2.3:a:elixir-plug:plug:*:*:*:*:*:*:*:*——elixir-plug
  • cpe:2.3:a:elixir-plug:plug:*:*:*:*:*:*:*:* Versions — — ·elixir-plug

Remediation

  • Fix · CNA plug (elixir-plug) Fixed in 1.16.6, 1.17.4, 1.18.5, 1.19.5, 1.20.3

Fixed in the same release

Records fixed by the same vendor advisory or release, as the CNA lists them.

  • Release ·

    elixir-plug plug 1.16.6, 1.17.4 and 3 more versions

    2 records Highest priority Priority LOW 2 LOW

    Other records, highest priority first

    • TI-2026-40966 Cookie attribute injection in Plug.Conn.Cookies.encode/2Priority LOW 11

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-56814

References

  • 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-07437 Unbounded buffer accumulation in multipart header parsing causes denial of service in plug CVSS 4.0HIGH 8.2
  • 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

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences