CVE-2026-82761 json
Magic link single-use tokens replayable via TOCTOU race in AshAuthentication
published last mo. modified last mo. also EEF-CVE-2026-82761 , EUVD-2026-81480 , GHSA-23gr-vcp4-r27q
- cvss
- 9.1
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 47%
- public exploits
- 0
- none known
Summary
Time-of-check Time-of-use (TOCTOU) Race Condition vulnerability in team-alembic AshAuthentication allows an attacker holding a leaked magic link to replay its single-use token and authenticate as the target subject. A magic link configured with single_use_token?, which is the default, is meant to be redeemable exactly once, but nothing serialises the token's validity check against its consumption, so concurrent redemptions of one token all succeed and each yields a full user token.
Sign-in verifies the JWT with Jwt.verify/4 and revokes it only afterwards: AshAuthentication.Strategy.MagicLink.SignInPreparation revokes in a Query.after_action callback, and AshAuthentication.Strategy.MagicLink.SignInChange in an after_transaction hook that runs once the sign-in has already committed. AshAuthentication.TokenResource.Actions.revoke/3 writes the revocation as an upsert, so a concurrent duplicate revocation silently succeeds instead of conflicting and no request ever loses the race.
This issue affects ash_authentication: from 3.9.0 before 4.15.0 and from 5.0.0-rc.0 before 5.0.0-rc.14.
Patch / fix
- hex ash_authentication 4.15.0, 5.0.0-rc.14
- team-alembic ash_authentication 4.15.0, 5.0.0-rc.14
Is CVE-2026-82761 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- total
- Assessed
- last mo.
Exploit prediction
0.56% chance of exploitation in the next 30 days, higher than 47% of all scored CVEs (FIRST EPSS, 2026-11-11).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 9.1 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N |
| CNA | 4.0 | 9.1 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | ash_authentication | >=3.9.0, <4.15.0 >=5.0.0-rc.0, <5.0.0-rc.14 |
4.15.0 5.0.0-rc.14 |
Affected products
- team-alembic ash_authentication
Classification
- Weakness
-
- CWE-367 Time-of-check Time-of-use (TOCTOU) Race Condition
References
-
github.com
/team-alembic/ash_authentication/commit/cf3d227ef25912cf1b0c5fa80f20001f5c46a102
related, web
-
github.com
/team-alembic/ash_authentication/commit/18dfdb36c14aa6a61df8572bce2d5ec36b1d9840
patch
-
github.com
/team-alembic/ash_authentication/commit/9ef6864b8833d3b795427a7b8dc518a4997d41ab
patch
-
github.com
/team-alembic/ash_authentication/security/advisories/GHSA-23gr-vcp4-r27q
related, vendor-advisory, advisory
-
cna.erlef.org
/cves/CVE-2026-82761.html
related, web
-
osv.dev
/vulnerability/EEF-CVE-2026-82761
related
-
hex.pm
/packages/ash_authentication
package
Sources
- CVE List CVE-2026-82761
- NVD CVE-2026-82761
- OSV EEF-CVE-2026-82761
- Maintainer advisory GHSA-23gr-vcp4-r27q
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of team-alembic/ash_authentication published their own advisory on GitHub. Reviewed sources take precedence over it.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.