{"id":"GHSA-468c-vq7p-gh64","summary":"Plug: Unbounded buffer accumulation in multipart header parsing causes denial of service","details":"### Summary\n\nAn Allocation of Resources Without Limits or Throttling vulnerability in `Plug.Conn.read_part_headers/2` allows an unauthenticated attacker to exhaust server memory by sending a crafted `multipart/form-data` request, causing a denial of service.\n\n### Details\n\n`Plug.Conn.read_part_headers/2` in `lib/plug/conn.ex` does not obey its `:length` parameter. There is no upper bound on the size of the accumulated buffer. By contrast, the sibling function `read_part_body` has an explicit `byte_size(acc) \u003e length` guard that stops accumulation once a limit is reached. No such guard exists in `read_part_headers`.\n\n### Impact\n\nThis is a denial-of-service vulnerability. Any application using `Plug.Parsers` with the `:multipart` parser, or calling `Plug.Conn.read_part_headers/2` directly, is affected. An unauthenticated remote attacker can trigger the issue by sending crafted HTTP requests with no special privileges.\n\n### References\n\n* Intro Commit: https://github.com/elixir-plug/plug/commit/c52b2f32c90bccd718202bafccb5f95594e30183\n* Patch Commit: https://github.com/elixir-plug/plug/commit/d878b42efea9f12b243dc3e362a2ed048a798203","aliases":["CVE-2026-8468","EEF-CVE-2026-8468"],"modified":"2026-05-20T15:48:07.798538088Z","published":"2026-05-20T15:35:13Z","database_specific":{"nvd_published_at":"2026-05-14T11:16:18Z","cwe_ids":["CWE-770"],"severity":"HIGH","github_reviewed":true,"github_reviewed_at":"2026-05-20T15:35:13Z"},"references":[{"type":"WEB","url":"https://github.com/elixir-plug/plug/security/advisories/GHSA-468c-vq7p-gh64"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-8468"},{"type":"WEB","url":"https://github.com/elixir-plug/plug/commit/2cb7958d33030aa826b0c7404375844d4593d43a"},{"type":"WEB","url":"https://github.com/elixir-plug/plug/commit/33858427c7f2737d560a2e40a0c9a9270d77d1d7"},{"type":"WEB","url":"https://github.com/elixir-plug/plug/commit/aa69c5ece99c40ded88b8c6581ecc86664b0b734"},{"type":"WEB","url":"https://github.com/elixir-plug/plug/commit/d5dfffe25e975585227b1b85d247b0d14164bc45"},{"type":"WEB","url":"https://github.com/elixir-plug/plug/commit/df812a1527bae9e941965e897308a2b8bbf83a94"},{"type":"WEB","url":"https://cna.erlef.org/cves/CVE-2026-8466.html"},{"type":"WEB","url":"https://cna.erlef.org/cves/CVE-2026-8468.html"},{"type":"PACKAGE","url":"https://github.com/elixir-plug/plug"},{"type":"WEB","url":"https://osv.dev/vulnerability/EEF-CVE-2026-8468"}],"affected":[{"package":{"name":"plug","ecosystem":"Hex","purl":"pkg:hex/plug"},"ranges":[{"type":"SEMVER","events":[{"introduced":"1.4.0"},{"fixed":"1.15.4"}]}],"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","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"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-468c-vq7p-gh64/GHSA-468c-vq7p-gh64.json"}},{"package":{"name":"plug","ecosystem":"Hex","purl":"pkg:hex/plug"},"ranges":[{"type":"SEMVER","events":[{"introduced":"1.16.0"},{"fixed":"1.16.3"}]}],"versions":["1.16.0","1.16.1","1.16.2"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-468c-vq7p-gh64/GHSA-468c-vq7p-gh64.json"}},{"package":{"name":"plug","ecosystem":"Hex","purl":"pkg:hex/plug"},"ranges":[{"type":"SEMVER","events":[{"introduced":"1.17.0"},{"fixed":"1.17.1"}]}],"versions":["1.17.0"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-468c-vq7p-gh64/GHSA-468c-vq7p-gh64.json"}},{"package":{"name":"plug","ecosystem":"Hex","purl":"pkg:hex/plug"},"ranges":[{"type":"SEMVER","events":[{"introduced":"1.18.0"},{"fixed":"1.18.2"}]}],"versions":["1.18.0","1.18.1"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-468c-vq7p-gh64/GHSA-468c-vq7p-gh64.json"}},{"package":{"name":"plug","ecosystem":"Hex","purl":"pkg:hex/plug"},"ranges":[{"type":"SEMVER","events":[{"introduced":"1.19.0"},{"fixed":"1.19.2"}]}],"versions":["1.19.0","1.19.1"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-468c-vq7p-gh64/GHSA-468c-vq7p-gh64.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"}]}