Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR
Summary
| CVE | CVE-2026-64941 |
|---|---|
| State | PUBLISHED |
| Assigner | EEF |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-08-10 12:17:19 UTC |
| Updated | 2026-08-12 20:52:13 UTC |
| Description | URL Redirection to Untrusted Site ('Open Redirect') vulnerability in phoenixframework phoenix_live_view allows an attacker to send a victim's browser to an origin of the attacker's choosing via a :to value containing ASCII tab, LF or CR. redirect/2 validates :to through the private validate_local_url!/2 in lib/phoenix_live_view.ex, which is intended to guarantee the target is a path within the application. It rejects a leading // and any backslash, but not ASCII tab, LF or CR. Browsers strip those three characters before parsing a URL, so a value such as /<TAB>/example.com passes validation as a path and is then resolved as the scheme-relative URL //example.com. The live navigation functions share the guard but are not affected, because the client expands their target against the current origin. push_patch/2 is also affected before 0.7.0, which is when that expansion was added. This issue affects phoenix_live_view: from 0.5.0 before 1.0.19, from 1.1.0-rc.0 before 1.1.33, and from 1.2.0-rc.0 before 1.2.9. |
Risk And Classification
Primary CVSS: v4.0 2.1 LOW from 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS: 0.003410000 probability, percentile 0.268850000 (date 2026-08-12)
Problem Types: CWE-601 | CWE-601 CWE-601 URL Redirection to Untrusted Site ('Open Redirect')
| Version | Source | Type | Score | Severity | Vector |
|---|---|---|---|---|---|
| 4.0 | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | Secondary | 2.1 | LOW | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/C... |
| 4.0 | CNA | CVSS | 2.1 | LOW | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N |
CVSS v4.0 Breakdown
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Phoenixframework | Phoenix Live View | affected 0.5.0 1.0.19 semver | Not specified |
| CNA | Phoenixframework | Phoenix Live View | affected 1.1.0-rc.0 1.1.33 semver | Not specified |
| CNA | Phoenixframework | Phoenix Live View | affected 1.2.0-rc.0 1.2.9 semver | Not specified |
| CNA | Phoenixframework | Phoenix Live View | affected b20dba3f65a380b2e4868dae03397f13d2daa070 * git | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| github.com/phoenixframework/phoenix_live_view/commit/1c164f83df0bb922dff... | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | github.com | |
| github.com/phoenixframework/phoenix_live_view/commit/2068b304d71907064b1... | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | github.com | |
| github.com/phoenixframework/phoenix_live_view/commit/0b8c733133466912f81... | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | github.com | |
| github.com/phoenixframework/phoenix_live_view/security/advisories/GHSA-3... | 134c704f-9b21-4f2e-91b3-4a467353bcc0 | github.com | |
| cna.erlef.org/cves/CVE-2026-64941.html | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | cna.erlef.org | |
| osv.dev/vulnerability/EEF-CVE-2026-64941 | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | osv.dev | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
Vendor Comments And Credit
Discovery Credit
CNA: Eurico Nicacio (en)
CNA: Steffen Deusch (en)
CNA: José Valim (en)
CNA: Jonatan Männchen / EEF (en)
Additional Advisory Data
Workarounds
CNA: Reject any untrusted value containing ASCII tab, LF or CR before passing it as :to to redirect/2, or to push_patch/2 before 0.7.0. Alternatively, map client-supplied navigation targets to a fixed set of known-good paths rather than forwarding the value.