Description
Improper 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.1 before 1.19.5, and from 1.20.0 before 1.20.3.
Published: 2026-07-10
Score: 2.1 Low
EPSS: < 1% Very Low
KEV: No
Impact: Cookie Attribute Injection that can lead to session hijack
Action: Patch
AI Analysis

Impact

Improper neutralization of parameter delimiters in elixir‑plug plug creates a CWE‑141 vulnerability that allows an attacker to inject or override HTTP cookie attributes. The Plug.Conn.Cookies.encode/2 function interpolates cookie values and attributes directly into the Set‑Cookie header without neutralizing the ';' delimiter that separates cookie attributes. When attacker‑controlled data is inserted into a cookie value or attribute—for example via Plug.Conn.put_resp_cookie—the attacker can append or replace attributes such as Domain, Path, Secure, or HttpOnly, enabling cookie tossing, session fixation, or other session‑related attacks. Header validation blocks response‑splitting by rejecting carriage return, line feed, and null bytes, but it does not neutralize the ';', leaving the injection vector open.

Affected Systems

The vulnerability affects the elixir‑plug plug library across all versions prior to 1.16.6, 1.17.4, 1.18.5, 1.19.5, and 1.20.3. Applications built with Plug that pass untrusted data into Plug.Conn.put_resp_cookie/4 or Plug.Conn.Cookies.encode/2 will be impacted.

Risk and Exploitability

The CVSS score of 2.1 classifies this issue as low severity, and the EPSS score of less than 1% indicates a low likelihood of exploitation; the vulnerability is not listed in the CISA KEV catalog. Exploitation requires the attacker to influence cookie values or attributes that the application sends back to the client, and existing header validation blocks response splitting. While no public exploits have been reported, the risk remains theoretical, but mitigation is recommended due to the potential impact on session integrity.

Generated by OpenCVE AI on September 26, 2026 at 06:11 UTC.

Remediation

Vendor Workaround

Validate 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.


OpenCVE Recommended Actions

  • Upgrade the elixir‑plug dependency to at least 1.16.6, 1.17.4, 1.18.5, 1.19.5, or 1.20.3, depending on the major version you are using.
  • Validate or reject any ';' delimiter in cookie values or attributes before calling Plug.Conn.put_resp_cookie or Plug.Conn.Cookies.encode; this removes the injection surface.
  • Ensure that application code sets the Secure and HttpOnly flags on cookies and uses absolute domain and path values rather than relying on defaults; additionally, enable HSTS and other cookie‑security best practices to reduce session reuse risks.

Generated by OpenCVE AI on September 26, 2026 at 06:11 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 24 Sep 2026 22:30:00 +0000


Thu, 24 Sep 2026 21:45:00 +0000

Type Values Removed Values Added
Description Improper 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. Improper 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.1 before 1.19.5, and from 1.20.0 before 1.20.3.
References

Fri, 10 Jul 2026 13:00:00 +0000

Type Values Removed Values Added
Description Improper 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.
Title Cookie attribute injection in Plug.Conn.Cookies.encode/2
First Time appeared Elixir-plug
Elixir-plug plug
Weaknesses CWE-141
CPEs cpe:2.3:a:elixir-plug:plug:*:*:*:*:*:*:*:*
Vendors & Products Elixir-plug
Elixir-plug plug
References
Metrics cvssV4_0

{'score': 2.1, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N'}


Subscriptions

Elixir-plug Plug
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-09-24T21:30:13.749Z

Reserved: 2026-06-23T12:29:02.507Z

Link: CVE-2026-56813

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-07-10T13:16:20.663

Modified: 2026-09-24T22:17:00.960

Link: CVE-2026-56813

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-26T06:15:06Z

Weaknesses
  • CWE-141

    Improper Neutralization of Parameter/Argument Delimiters