plug
Compose web applications with functions
Activity
- Latest release
- 2mo ago
- Total releases
- 138
- Cadence
- ~4 days
- Last 12 months
- 25
Reach
- Stars
- 3.0k
Details
- License
- Apache-2.0
- First release
- Apr 23, 2014
| Version | Released | |
|---|---|---|
1.16.6
patch
| ||
1.17.4
patch
| ||
1.18.5
patch
| ||
1.19.5
patch
| ||
1.20.3
patch
| ||
1.15.6
patch
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.16.5
patch
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.17.3
patch
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.18.4
patch
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.19.4
patch
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.20.2
patch
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.20.1
patch
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.20.0
minor
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.15.5
patch
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.16.4
patch
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.17.2
patch
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.18.3
patch
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.19.3
patch
2 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.15.4
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.16.3
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.17.1
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.18.2
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.19.2
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev | ||
1.19.1
patch
4 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.19.0
minor
4 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.18.1
patch
4 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.18.0
minor
4 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.17.0
minor
4 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.16.2
patch
4 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.16.1
patch
4 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.16.0
minor
4 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.15.3
patch
4 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.15.2
patch
4 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.15.1
patch
4 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.15.0
minor
4 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-54892
EEF-CVE-2026-54892
GHSA-j43x-5hjq-rgxf
Jun 23, 2026
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
High
Network
Low
None
None
SummaryInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. Plug.Conn.Query.decode/4 (and Plug.Conn.Query.decode_each/2) parse query strings and application/x-www-form-urlencoded request bodies. When a key contains many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels. With the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required. This vulnerability is associated with program files lib/plug/conn/query.ex and program routines Plug.Conn.Query.decode/4, Plug.Conn.Query.decode_each/2, Plug.Conn.Query.split_keys/6, Plug.Conn.Query.insert_keys/3, and Plug.Conn.Query.finalize_pointer/2. This issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3. Affected versions
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.16.0
1.16.1
1.16.2
1.16.3
1.17.0
1.17.1
1.18.0
+ 5 more Show less
1.18.1
1.18.2
1.19.0
1.19.1
1.19.2
Fixed in
1.15.5
1.16.4
1.17.2
1.18.3
1.19.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.14.2
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.14.1
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.14.0
minor
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.13.6
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.13.5
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.13.4
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.13.3
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.13.2
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.13.1
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.13.0
minor
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.12.1
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.12.0
minor
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.11.1
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.11.0
minor
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev | ||
1.10.4
patch
3 CVEs
CVE-2026-56813
EEF-CVE-2026-56813
GHSA-wpmj-jh88-rpgm
Jul 10, 2026
Cookie attribute injection in Plug.Conn.Cookies.encode/2
Medium
Local
Low
None
None
SummaryImproper Neutralization of Parameter/Argument Delimiters vulnerability in elixir-plug plug allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function in lib/plug/conn/cookies.ex builds the Set-Cookie response header by interpolating the cookie value and its path, domain, same_site, and extra attributes directly into the header without neutralizing the ';' delimiter that separates cookie attributes. An application that places attacker-controlled data into a cookie value or attribute (for example via Plug.Conn.put_resp_cookie/4 when reflecting a username or preference) lets an attacker inject a ';' to append or override cookie attributes (such as Domain and Path scope, or dropping the Secure and HttpOnly flags), enabling cookie tossing and session fixation. Carriage return, line feed, and null bytes are rejected by Plug.Conn header validation, so HTTP response splitting is not possible, but attribute injection through ';' is not prevented. This issue affects plug: from 0.1.0 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, from 1.20.0 before 1.20.3. WorkaroundsValidate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2. Carriage return, line feed, and null bytes are already rejected by Plug.Conn header validation. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.12.1
0.12.2
0.13.0
0.13.1
0.14.0
0.4.1
+ 121 more Show less
0.4.2
0.4.3
0.4.4
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.7.0
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.9.0
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.2.0
1.2.0-rc.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.20.0
1.20.1
1.20.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.4.0
1.4.0-rc.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-56814
EEF-CVE-2026-56814
GHSA-95qv-c9g9-rm63
Jul 10, 2026
Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)
Medium
Network
Low
None
None
SummaryPlug.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 before 1.16.6, from 1.17.0 before 1.17.4, from 1.18.0 before 1.18.5, from 1.19.0 before 1.19.5, and from 1.20.0 before 1.20.3. Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 61 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
1.17.0
1.17.1
1.17.2
1.17.3
1.18.0
1.18.1
1.18.2
1.18.3
1.18.4
1.19.0
1.19.1
1.19.2
1.19.3
1.19.4
1.20.0
1.20.1
1.20.2
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
Fixed in
1.16.6
1.17.4
1.18.5
1.19.5
1.20.3
References
Updated Jul 30, 2026 · Source: OSV.dev
CVE-2026-8468
GHSA-468c-vq7p-gh64
EEF-CVE-2026-8468
May 20, 2026
Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service
High
Network
Low
None
None
SummaryAn Allocation of Resources Without Limits or Throttling vulnerability in Details
ImpactThis is a denial-of-service vulnerability. Any application using References
Affected versions
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
+ 43 more Show less
1.13.3
1.13.4
1.13.5
1.13.6
1.14.0
1.14.1
1.14.2
1.15.0
1.15.1
1.15.2
1.15.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.5.0
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.2
1.8.0
1.8.1
1.8.2
1.8.3
1.9.0
1.16.0
1.16.1
1.16.2
1.17.0
1.18.0
1.18.1
1.19.0
1.19.1
Fixed in
1.15.4
1.16.3
1.17.1
1.18.2
1.19.2
References
Updated May 20, 2026 · Source: OSV.dev |