Skip to main content

elixir-plug CVE-2026-56813

| EUVDEUVD-2026-42876 LOW
Improper Neutralization of Parameter/Argument Delimiters (CWE-141)
2026-07-10 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
2.1
CVSS 4.0 · Vendor: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Attacker submits HTTP request with `;`-injected payload in user-controlled field
  2. Delivery
    Application passes payload to `put_resp_cookie/4` without sanitization
  3. Exploit
    `Cookies.encode/2` interpolates `;` into Set-Cookie header unescaped
  4. Execution
    Browser parses injected cookie attributes as legitimate
  5. Persist
    Cookie domain or path scope widened or Secure/HttpOnly flags stripped
  6. Impact
    Session fixation or cross-domain cookie tossing achieved

Vulnerability Assessment

Weakness
CWE
Exploitation Conditions

Exploitation requires that the target application passes attacker-influenced data - such as a user-supplied username, locale preference, redirect path, or any other externally sourced value - directly into the value or optional attribute parameters (path, domain, same_site, extra) of Plug.Conn.put_resp_cookie/4. Applications that set only server-generated constants or values derived entirely from trusted internal sources in cookies are not vulnerable regardless of Plug version. HTTP response splitting is explicitly ruled out because Plug's existing header validation rejects CRLF and null bytes; only ;-delimited attribute injection is in scope. The CVSS 4.0 AT:P metric confirms this is a conditional vulnerability gated on the application's cookie-handling pattern, not universally exploitable against all Plug or Phoenix deployments.

Impact

The CNA-assigned CVSS 4.0 score of 2.1 (AV:L/AC:L/AT:P/PR:N/UI:N) appears to underrepresent network reachability: the practical attack path is HTTP-based, not local system access, suggesting AV:L may reflect conservative scoring of a server-side code-quality issue rather than directly network-exploitable behavior. The AT:P metric correctly captures the critical limiting factor - only applications routing attacker-controlled data into put_resp_cookie/4 parameters are exploitable, and this is not a default behavior. EPSS data is absent from the provided intelligence; no KEV listing and no referenced POC indicate no confirmed active exploitation at time of analysis. Integrity impact is low (cookie scope manipulation, session fixation) with no confidentiality or availability impact, consistent with the VI:L/SI:L CVSS 4.0 scoring. Real-world priority is primarily a code-audit question: teams should grep for put_resp_cookie calls that consume user input and upgrade to the patched version, but applications with server-generated static cookie values are not at risk regardless of Plug version.

Exploit ScenarioDerived

An attacker registers an account with a crafted username such as alice; Domain=.attacker.com; Secure=false and triggers an application flow where that value is reflected into a session cookie via put_resp_cookie. Because Cookies.encode/2 interpolates the value without sanitizing ;, the resulting Set-Cookie header includes the injected Domain attribute, causing the victim's browser to store the cookie with widened domain scope. The attacker can then perform cookie tossing, presenting a forged session cookie to the legitimate server and achieving session fixation with no public POC confirmed at time of analysis.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 10, 2026

Cookie attribute injection in elixir-plug's Plug library allows a remote attacker who can supply values reflected into Set-Cookie headers to inject the ; delimiter and override attributes such as Domain, Path, Secure, and HttpOnly. Applications calling Plug.Conn.put_resp_cookie/4 with user-controlled data - for example, reflecting a username or preference value - are exposed to session fixation and cookie tossing across five supported release lines (0.1.0 through 1.20.2). No public exploit code or CISA KEV listing is present at time of analysis, but the attack is mechanically straightforward wherever the vulnerable code pattern exists.

RemediationAI

Upgrade Plug to the patched release for your active branch: 1.16.6, 1.17.4, 1.18.5, 1.19.5, or 1.20.3, referencing the upstream fix commit at https://github.com/elixir-plug/plug/commit/c6575800b2c4e15af1904df87522ca8a23da020c and the full advisory at https://github.com/elixir-plug/plug/security/advisories/GHSA-wpmj-jh88-rpgm. As an interim measure pending upgrade, audit all invocations of Plug.Conn.put_resp_cookie/4 and Plug.Conn.put_resp_cookie/3 in the codebase and strip or reject ; characters from any attacker-influenced inputs before they reach cookie parameters - note that ad-hoc sanitization risks incomplete coverage across all call sites and should not substitute for patching. Applications that set only server-generated, static cookie values are not exposed and do not require emergency remediation.

Affected VersionsENISA

plug 1.19.0 <1.19.5
plug 1.18.0 <1.18.5
plug 0.1.0 <1.16.6
plug 1.20.0 <1.20.3
plug f26876aa67aaeb38e616638aa3efbcc2fe2906a5 <*
plug 1.17.0 <1.17.4

Affected Packages

euvd plug fix: 1.16.6, 1.17.4, 1.18.5, 1.19.5, 1.20.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in Plug.Conn.Cookies.encode/2 within lib/plug/conn/cookies.ex - the core cookie-serialization function of elixir-plug, the foundational HTTP middleware used by Phoenix and other Elixir web frameworks. The root cause (CWE-141: Improper Neutralization of Parameter/Argument Delimiters) is direct string interpolation of the cookie value, path, domain, same_site, and extra attributes into the Set-Cookie response header without stripping or encoding the ; character, which RFC 6265 uses to delimit cookie attributes. Plug's existing header validation does reject CRLF and null bytes - precluding HTTP response splitting - but the ; delimiter passes through unfiltered. Affected versions span plug 0.1.0-1.16.5, 1.17.0-1.17.3, 1.18.0-1.18.4, 1.19.0-1.19.4, and 1.20.0-1.20.2.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (6b3ad84c-e1a6-4bf7-a703-f496b71e49db) PRIMARY 2.1 LOW
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
vuln.today AI 4.7 MEDIUM

Network vector for HTTP-based attack; AC:H for prerequisite of reflecting user data into cookies; S:C for cross-browser cookie security impact.

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N

Primary rating from Vendor (6b3ad84c-e1a6-4bf7-a703-f496b71e49db).

CVSS VectorVendor: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Jul 10, 2026 - 14:01 EUVD

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Medium
popular Elixir/Phoenix HTTP middleware, Elixir is niche
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

10
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy