Am I affected?

type your plug version to check

Description

Allocation of Resources Without Limits or Throttling vulnerability in plug_project plug allows denial of service via unbounded buffer accumulation in multipart header parsing.

'Elixir.Plug.Conn':read_part_headers/2 in lib/plug/conn.ex does not obey its :length parameter. There is no upper bound on the size of the accumulated buffer. By contrast, the sibling function read_part_body has an explicit byte_size(acc) > length guard that stops accumulation once a limit is reached. No such guard exists in read_part_headers. An unauthenticated remote attacker can exhaust server memory by sending a crafted multipart/form-data request, causing a denial of service.

This issue affects plug from 1.4.0 before 1.15.4, 1.16.3, 1.17.1, 1.18.2, and 1.19.2.

Weaknesses & attack patterns

Weakness

CWE-770 · Allocation of Resources Without Limits or Throttling in catalog → MITRE ↗

Attack patterns

CAPEC-130 · Excessive Allocation MITRE ↗

Affected — Hex / plug Hex.pm ↗ Repository ↗

1.4.0 < 1.15.4 affected
1.16 series 1.16.0 < 1.16.3 affected
1.17 series 1.17.0 < 1.17.1 affected
1.18 series 1.18.0 < 1.18.2 affected
1.19 series 1.19.0 < 1.19.2 affected
every other version: unaffected
cpe cpe:2.3:a:plug_project:plug:*:*:*:*:*:*:*:*
modules · source files · routines
modules Elixir.Plug.Conn
source files lib/plug/conn.ex
routines 'Elixir.Plug.Conn':read_part_headers/2

Affected — GitHub / elixir-plug/plug Repository ↗

c52b2f3 and up affected
2cb7958 not affected
aa69c5e not affected
d5dfffe not affected
df812a1 not affected
3385842 not affected
every other version: unaffected
cpe cpe:2.3:a:plug_project:plug:*:*:*:*:*:*:*:*
modules · source files · routines
modules Elixir.Plug.Conn
source files lib/plug/conn.ex
routines 'Elixir.Plug.Conn':read_part_headers/2

Configurations

The application must use Plug.Parsers with the :multipart parser, or otherwise call Plug.Conn.read_part_headers/2 to process multipart/form-data request bodies. Deployments that do not handle multipart uploads are not affected.

References

Credits

José Valim Finder Remediation developer
Jonatan Männchen / EEF Analyst

CVSS breakdown

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
« All CVEs