CVE-2026-81637

Replayable OAuth2 CSRF state retained after a failed callback in AshAuthentication

LOW
2.3
CVSS Score
Published: September 17, 2026 at 01:09 PM UTC
Updated: September 18, 2026 at 06:29 PM UTC
1 product affected across 1 vendorAsh Authentication

Using ash_authentication by team-alembic?

Get instant alerts when new vulnerabilities affect ash_authentication - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
LOW2.3
Exploit prediction
EPSS 0.6%
SSVC
No known exploit

Description

Insufficient Session Expiration vulnerability in team-alembic AshAuthentication allows an attacker who obtains a victim's OAuth2 state value to replay the callback and sign that victim into an attacker-controlled account. AshAuthentication.Strategy.OAuth2.Plug.callback/2 clears the stored session_params through a rebinding step inside its with chain, conn <- delete_session(conn, session_key). Elixir evaluates the else block in the scope enclosing the with, so every failure path (the provider returning ?error=access_denied, an invalid code, a token-exchange error, or a registration or sign-in failure) reaches store_authentication_result/2 holding the original connection and the session entry is never removed. The value the module's own comment describes as protection against a CSRF-related attack is therefore consumed only when authentication succeeds, and survives a cancelled or failed attempt until the next request phase or session expiry. This issue affects ash_authentication: from 0.6.0 before 4.15.0 and from 5.0.0-rc.0 before 5.0.0-rc.14.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

0.6.0 ≤ v < 4.15.05.0.0-rc.0 ≤ v < 5.0.0-rc.140.6.05.0.0-rc.0c5f589058e04239263f50a1430eb17ea6d5dd1a2
Affected range stops below 4.15.0, so it looks safe — our inference, not a vendor statement
Affected range stops below 5.0.0-rc.14, so it looks safe — our inference, not a vendor statement

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

2.3LOWEEF
Vector?

Quick Info

StatusDEFERRED
CWE
CWE-613

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card