Improper Neutralization of Input During Web Page Generation (XSS) vulnerability in team-alembic AshAuthentication allows reflected cross-site scripting via the confirmation and magic link interaction forms.
When a strategy is configured with require_interaction? set to true, AshAuthentication serves an intermediate HTML page asking the user to confirm the action by submitting a form. Both such pages embed a request parameter directly into a hidden input's value attribute without HTML escaping: lib/ash_authentication/add_ons/confirmation/confirmation_form.html.eex interpolates the confirm parameter, and lib/ash_authentication/strategies/magic_link/sign_in_form.html.eex interpolates the magic link token parameter. These templates are compiled with EEx.function_from_file/3 using plain <%= %> expressions, which perform no escaping, so the parameter is reflected verbatim.
Neither accept handler validates the value before rendering it. AshAuthentication.AddOn.Confirmation.Plug.accept/2 only checks that a confirm key is present, and AshAuthentication.Strategy.MagicLink.Plug.accept/2 reads the parameter directly, so no token signature is verified at this stage and arbitrary attacker-supplied text reaches the template. An unauthenticated attacker can therefore craft a URL whose parameter terminates the attribute and injects markup, for example a quote followed by a
{
"cna_assigner": "EEF",
"cwe_ids": [
"CWE-79"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/66xxx/CVE-2026-66882.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "fe0b4558dbe852fee5d81a460a8355577618a8c8"
},
{
"fixed": "62719710790a150a9eacab9c0a066e0d122d15be"
}
],
"source": "AFFECTED_FIELD",
"strategy": "ChangesAt"
},
{
"range": [
{
"introduced": "4.8.0"
},
{
"fixed": "4.14.2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"introduced": "5.0.0-rc.0"
},
{
"fixed": "5.0.0-rc.13"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"fixed": "62719710790a150a9eacab9c0a066e0d122d15be"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "0bd5199db066be22b2ca1ec8bc6109e5d62e6070"
}
],
"source": "REFERENCES_COMMIT"
}
]
}