{"containers":{"cna":{"affected":[{"collectionURL":"https://repo.hex.pm","cpes":["cpe:2.3:a:team-alembic:ash_authentication:*:*:*:*:*:*:*:*"],"defaultStatus":"unaffected","modules":["'Elixir.AshAuthentication.AddOn.Confirmation.ConfirmChange'"],"packageName":"ash_authentication","packageURL":"pkg:hex/ash_authentication","product":"ash_authentication","programFiles":["lib/ash_authentication/add_ons/confirmation/confirm_change.ex"],"programRoutines":[{"name":"'Elixir.AshAuthentication.AddOn.Confirmation.ConfirmChange':change/3"}],"repo":"https://github.com/team-alembic/ash_authentication","vendor":"team-alembic","versions":[{"lessThan":"4.15.0","status":"affected","version":"0.5.0","versionType":"semver"},{"lessThan":"5.0.0-rc.14","status":"affected","version":"5.0.0-rc.0","versionType":"semver"}]},{"collectionURL":"https://github.com","cpes":["cpe:2.3:a:team-alembic:ash_authentication:*:*:*:*:*:*:*:*"],"defaultStatus":"unaffected","modules":["'Elixir.AshAuthentication.AddOn.Confirmation.ConfirmChange'"],"packageName":"team-alembic/ash_authentication","packageURL":"pkg:github/team-alembic/ash_authentication","product":"ash_authentication","programFiles":["lib/ash_authentication/add_ons/confirmation/confirm_change.ex"],"programRoutines":[{"name":"'Elixir.AshAuthentication.AddOn.Confirmation.ConfirmChange':change/3"}],"repo":"https://github.com/team-alembic/ash_authentication","vendor":"team-alembic","versions":[{"changes":[{"at":"d7c15c21d39c009206e010cd67e2d86370fe7a28","status":"unaffected"},{"at":"2a2396af131ab67e2f445b805fecce8e6ca86c0e","status":"unaffected"}],"lessThan":"*","status":"affected","version":"1d4bb00617aecae85c33f2ff5bc7e094c6449a6e","versionType":"git"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:a:team-alembic:ash_authentication:*:*:*:*:*:*:*:*","versionEndExcluding":"4.15.0","versionStartIncluding":"0.5.0","vulnerable":true},{"criteria":"cpe:2.3:a:team-alembic:ash_authentication:*:*:*:*:*:*:*:*","versionEndExcluding":"5.0.0-rc.14","versionStartIncluding":"5.0.0-rc.0","vulnerable":true}],"negate":false,"operator":"OR"}],"operator":"AND"}],"credits":[{"lang":"en","type":"reporter","value":"Peter Ullrich"},{"lang":"en","type":"remediation developer","value":"James Harton"},{"lang":"en","type":"analyst","value":"Jonatan Männchen / EEF"}],"dateAssigned":"2026-09-11T17:35:42.000Z","descriptions":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"<p>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.</p>\n<p><code>AshAuthentication.AddOn.Confirmation.ConfirmChange</code> verifies the token's signature and its <code>act</code> claim, then applies the changes stored against that token to whichever record the changeset targets, never comparing the <code>sub</code> claim against <code>changeset.data</code>. 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 <code>force_change_attributes/2</code> and stamping <code>confirmed_at</code>, after which an ordinary password reset yields the account. The library's own confirmation flow is unaffected, because <code>AshAuthentication.AddOn.Confirmation.Actions.confirm/3</code> resolves <code>sub</code> to a user and targets that record.</p>\n<p>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.</p>"},{"base64":false,"type":"text/markdown","value":"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.\n\n`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.\n\nThis 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."}],"value":"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.\n\nAshAuthentication.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.\n\nThis 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."}],"impacts":[{"capecId":"CAPEC-21","descriptions":[{"lang":"en","value":"CAPEC-21 Exploitation of Trusted Identifiers"}]}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"LOW","attackRequirements":"PRESENT","attackVector":"NETWORK","baseScore":7.6,"baseSeverity":"HIGH","privilegesRequired":"LOW","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"NONE","valueDensity":"NOT_DEFINED","vectorString":"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","version":"4.0","vulnAvailabilityImpact":"NONE","vulnConfidentialityImpact":"HIGH","vulnIntegrityImpact":"HIGH","vulnerabilityResponseEffort":"NOT_DEFINED"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-639","description":"CWE-639 Authorization Bypass Through User-Controlled Key","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-09-17T13:08:56.491Z","orgId":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db","shortName":"EEF"},"references":[{"tags":["related","vendor-advisory"],"url":"https://github.com/team-alembic/ash_authentication/security/advisories/GHSA-g636-26vf-2w63"},{"name":"EEF CNA record for CVE-2026-82685","tags":["related"],"url":"https://cna.erlef.org/cves/CVE-2026-82685.html"},{"name":"OSV record EEF-CVE-2026-82685","tags":["related"],"url":"https://osv.dev/vulnerability/EEF-CVE-2026-82685"},{"name":"Introducing commit 1d4bb00 in team-alembic/ash_authentication","tags":["related"],"url":"https://github.com/team-alembic/ash_authentication/commit/1d4bb00617aecae85c33f2ff5bc7e094c6449a6e"},{"name":"Fix commit d7c15c2 in team-alembic/ash_authentication","tags":["patch"],"url":"https://github.com/team-alembic/ash_authentication/commit/d7c15c21d39c009206e010cd67e2d86370fe7a28"},{"name":"Fix commit 2a2396a in team-alembic/ash_authentication","tags":["patch"],"url":"https://github.com/team-alembic/ash_authentication/commit/2a2396af131ab67e2f445b805fecce8e6ca86c0e"}],"source":{"discovery":"INTERNAL"},"title":"Confirmation token accepted on any record in AshAuthentication"}},"cveMetadata":{"assignerOrgId":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db","assignerShortName":"EEF","cveId":"CVE-2026-82685","datePublished":"2026-09-17T13:08:56.491Z","dateReserved":"2026-08-31T00:45:02.436Z","dateUpdated":"2026-09-17T13:08:56.491Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"}