Am I affected?

type your ash_authentication version to check

Description

Authorization Bypass Through User-Controlled Key vulnerability in team-alembic AshAuthentication allows an authenticated attacker to overwrite and confirm another user's email address, and so take over that account. A confirmation token issued to one user is accepted on any other user's record.

AshAuthentication.AddOn.Confirmation.ConfirmChange verifies the token's signature and its act claim, then applies the changes stored against that token to whichever record the changeset targets, never comparing the sub claim against changeset.data. An attacker who registers an account and changes their own email replays the resulting token against a victim's record id, writing in their own address with force_change_attributes/2 and stamping confirmed_at, after which an ordinary password reset yields the account. The library's own confirmation flow is unaffected, because AshAuthentication.AddOn.Confirmation.Actions.confirm/3 resolves sub to a user and targets that record.

This issue affects ash_authentication: from 0.5.0 before 4.15.0 and from 5.0.0-rc.0 before 5.0.0-rc.14.

Weaknesses & attack patterns

Weakness

CWE-639 · Authorization Bypass Through User-Controlled Key in catalog → MITRE ↗

Attack patterns

CAPEC-21 · Exploitation of Trusted Identifiers MITRE ↗

Affected — Hex / ash_authentication Hex.pm ↗ Repository ↗

0.5.0 < 4.15.0 affected
5.0 series 5.0.0-rc.0 < 5.0.0-rc.14 affected
every other version: unaffected
cpe cpe:2.3:a:team-alembic:ash_authentication:*:*:*:*:*:*:*:*
modules · source files · routines
modules 'Elixir.AshAuthentication.AddOn.Confirmation.ConfirmChange'
source files lib/ash_authentication/add_ons/confirmation/confirm_change.ex
routines 'Elixir.AshAuthentication.AddOn.Confirmation.ConfirmChange':change/3

Affected — GitHub / team-alembic/ash_authentication Repository ↗

1d4bb00 and up affected
d7c15c2 not affected
2a2396a not affected
every other version: unaffected
cpe cpe:2.3:a:team-alembic:ash_authentication:*:*:*:*:*:*:*:*
modules · source files · routines
modules 'Elixir.AshAuthentication.AddOn.Confirmation.ConfirmChange'
source files lib/ash_authentication/add_ons/confirmation/confirm_change.ex
routines 'Elixir.AshAuthentication.AddOn.Confirmation.ConfirmChange':change/3

References

Credits

Peter Ullrich Reporter
James Harton Remediation developer
Jonatan Männchen / EEF Analyst

CVSS breakdown

CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
« All CVEs