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.

Research and write-ups (1)

Vulnerability databases and vendor advisories (4)

Catalogue entries, not exploit evidence.

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

ProductAffectedNot affected
phoenixframework phoenix_live_viewfrom 1.2.2 before 1.2.7Not 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:

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
suricata
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

Other references

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.