CVE-2026-58228: Scheme validation bypass in Phoenix.LiveView.Utils leads to XSS via <.link>
Advisory generated from the CVE record, CISA, Exploit Observer and VEDAS: what it is, whether it is exploited, who is affected, and how to fix and detect it.
Generated by VEDAS. Scores as of 2026-11-01 19:19 UTC. Rebuilt every few hours from cve-scores, CISA KEV and vedas-signatures. How this works and its limits.
What it is
Cross-site scripting vulnerability in phoenixframework phoenix_live_view allows an attacker to bypass URL scheme validation and execute JavaScript in a victim’s browser session. The Phoenix.LiveView.Utils.valid_destination!/2 and Phoenix.LiveView.Utils.valid_live_navigation_destination!/2 functions in lib/phoenix_live_view/utils.ex rely on an internal uri_scheme/1 helper that only detects a scheme when the input’s first byte is an ASCII letter. Inputs beginning with an ASCII control character or space fall through to a nil-returning clause, causing the URL to be treated as a safe relative path. Standard browsers implement the WHATWG URL parser, which strips leading C0 control and space characters before parsing. As a result, an input such as “ javascript:alert(1)” is passed unchanged into <.link href={...}> and, when clicked, is parsed by the browser as a javascript: URL that executes attacker-controlled script in the victim’s session. Applications that render user-supplied URLs (for example profile links, redirect targets, or external references) via <.link href={...}> are affected. This issue affects phoenix_live_view: from 1.2.2 before 1.2.7.
Description quoted from the CVE record (assigned by EEF, published 2026-07-13).
Weakness: CWE-79 Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’)
How it can be exploited
Exploitable over the network with low attack complexity only when specific conditions are present needing no privileges and a user must actively take an action. Impact: confidentiality low, integrity low, availability none. CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:L/VI:L/VA:N/SC:H/SI:H/SA:N
CISA assessment (SSVC): CISA assesses that a public proof of concept exists. Automatable: no. Technical impact: partial.
Public exploit evidence (Exploit Observer)
Also known as: EUVD-2026-43515
VEDAS cluster: VEDAS:CRYPTIDCABBAGE
Exploit Observer links 3 pieces of public exploit code or detection modules that name this CVE or one of its aliases.
Exploit code and modules (3)
Code that names this CVE. A repository can be a working exploit, a scanner, a fake or malware; read it before running anything.
- Code repository: https://raw.githubusercontent.com/ARPSyndicate/vedas-signatures/main/suricata/2026/CVE-2026-58228.rules
- Code repository: https://raw.githubusercontent.com/ARPSyndicate/vedas-signatures/main/suricata/2026/CVE-2026-58228.rules
- Code repository: https://raw.githubusercontent.com/ARPSyndicate/vedas-signatures/main/suricata/2026/CVE-2026-58228.rules
Research and write-ups (1)
- Research or write-up: https://cna.erlef.org/cves/CVE-2026-58228.html
Vulnerability databases and vendor advisories (4)
Catalogue entries, not exploit evidence.
- Vulnerability database or vendor advisory: https://euvd.enisa.europa.eu/enisa/EUVD-2026-43515
- Vulnerability database or vendor advisory: https://nvd.nist.gov/vuln/detail/CVE-2026-58228
- Vulnerability database or vendor advisory: https://osv.dev/vulnerability/EEF-CVE-2026-58228
- Vulnerability database or vendor advisory: https://osv.dev/vulnerability/EEF-CVE-2026-58228
2 more references returned by Exploit Observer did not name this CVE or an alias, so they are left out.
VEDAS data as of 2026-11-01T17:12 UTC; fetched 2026-11-02.
Live scores
- EPSS
- 0.005
low predicted chance of attack - VEDAS
- 0.988
strong exploit evidence - On CISA KEV
- Not listed
- Detection rule
- Suricata
Who is affected
| Product | Affected | Not affected |
|---|---|---|
| phoenixframework phoenix_live_view | from 1.2.2 before 1.2.7 | Not stated |
| phoenixframework phoenix_live_view (phoenixframework/phoenix_live_view) | from 4b63216ae688 before 86165533e311 (git commit) | Not stated |
Version ranges exactly as the CVE record states them. “Before X” means X is the first fixed version.
How to fix it
Fixed versions stated in the CVE record: 1.2.7.
Vendor guidance:
- https://github.com/phoenixframework/phoenix_live_view/security/advisories/GHSA-5cgh-g58j-m9cq (vendor-advisory, related)
- https://github.com/phoenixframework/phoenix_live_view/commit/86165533e311469a1b62093fd182d9d874de8106 (patch)
How to detect it
Suricata rules (network detection)
1 rule that alert on traffic matching this exploit: VEDAS CVE-2026-58228 Phoenix LiveView - Cross-Site Scripting via control-character javascript scheme bypass. Add them to your Suricata rule set and reload.
Show the rules
alert http $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"VEDAS CVE-2026-58228 Phoenix LiveView - Cross-Site Scripting via control-character javascript scheme bypass"; flow:established,to_server; http.uri; content:"javascript"; nocase; fast_pattern; pcre:"/(%0[0-9a-f]|%1[0-9a-f]|%20)javascript(%3a|:)/i"; classtype:web-application-attack; reference:cve,CVE-2026-58228; reference:url,https://www.exploit.observer/?keyword=CVE-2026-58228&match=exact; reference:url,https://subdomain.center/?engine=ammonites&keyword=phoenix-live-view&match=exact; metadata:signature_type network_only; sid:1079206; rev:1;)
CVE-2026-58228.rules on GitHub
References
Vendor advisories and patches
- https://github.com/phoenixframework/phoenix_live_view/security/advisories/GHSA-5cgh-g58j-m9cq (vendor-advisory, related)
- https://github.com/phoenixframework/phoenix_live_view/commit/86165533e311469a1b62093fd182d9d874de8106 (patch)
Other references
- https://cna.erlef.org/cves/CVE-2026-58228.html (related)
- https://osv.dev/vulnerability/EEF-CVE-2026-58228 (related)
Other databases
Where this comes from
This advisory is generated automatically by VEDAS from: CVE.org record, cve-scores (EPSS and VEDAS), Exploit Observer, vedas-signatures. Text in quotes is reproduced from the source; everything else is a fixed template filled with source fields. Nothing here is written by a language model. Check the vendor advisory before acting, and read how VEDAS and Exploit Observer work, and their limits.