Vulnerability advisory

CVE-2026-86533

Revoked session accepted because the session jti is never checked in AshAuthentication and AshAuthentication Phoenix

Published Updated OSV record ↗

Also known as EEF-CVE-2026-86533GHSA-m6x4-4gvp-xwjr

Severity
  • CVSS 4.0CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Affected versions

Repository

Affected commitsFixed by commit
GIT github.com/team-alembic/ash_authentication ↗
fcaeb73f76f8f2e9aef8bf637690d2a20dd97596 to before a3f49f758f013d2ff086dd9c5ef2d94e921711b4a3f49f758f013d2ff086dd9c5ef2d94e921711b4
a3253fb4fc7145aeb403537af1c24d3a8d51ffb1 to before f7ab005a2aac09707a25521653c94893d328cc52f7ab005a2aac09707a25521653c94893d328cc52
0135217e34e621dac79ae3d9559aeee49304b0aa to before f7ab005a2aac09707a25521653c94893d328cc52f7ab005a2aac09707a25521653c94893d328cc52
4f33c727b03a58d29a1d8a0a47d795548da3ab50 to before d6b2be35cf8f0b8ab84e7a934cfb0d91de0a3c17d6b2be35cf8f0b8ab84e7a934cfb0d91de0a3c17
6767fe27eb952e5bc09aa2e5a7d8f96f5a1c424a to before fea75958a081ed337ceb578396174039694c48dffea75958a081ed337ceb578396174039694c48df
Not specifiedfcaeb73f76f8f2e9aef8bf637690d2a20dd97596
Not specifiede28e911caa9728d76329afdb0fb26742ffe4eeef
GIT github.com/team-alembic/ash_authentication_phoenix ↗
f01a9164b2baa707d04ceb7b68f43a1cdc876960 to before ada68111380b56cacd018ad199e7965328160a24ada68111380b56cacd018ad199e7965328160a24
5e08034cab9e1f0306a5576c74566f1e462a462f to before 97cd7870a6c72ac222f78165667f6c4300a1299297cd7870a6c72ac222f78165667f6c4300a12992
Not specifieda3253fb4fc7145aeb403537af1c24d3a8d51ffb1
Not specified0135217e34e621dac79ae3d9559aeee49304b0aa
Not specifiedf7ab005a2aac09707a25521653c94893d328cc52
Also listed as affected (67)
  • v4.14.2
  • v5.0.0-rc.13
  • v4.14.1
  • v5.0.0-rc.12
  • v5.0.0-rc.11
  • v5.0.0-rc.10
  • v4.14.0
  • v4.13.7
  • 5.0.0-rc.9
  • 5.0.0-rc.8
  • v5.0.0-rc.7
  • v5.0.0-rc.6
  • v5.0.0-rc.5
  • v5.0.0-rc.4
  • v5.0.0-rc.3
  • v5.0.0-rc.2
  • v5.0.0-rc.1
  • v5.0.0-rc.0
  • v4.13.6
  • v4.13.5
  • v4.13.4
  • v4.13.3
  • v4.13.2
  • v4.13.1
  • v4.13.0
  • v4.12.0
  • v4.11.0
  • v4.10.0
  • v4.9.9
  • v4.9.8
  • v4.9.7
  • v4.9.6
  • v4.9.5
  • v4.9.4
  • v4.9.3
  • v4.9.2
  • v4.9.1
  • v2.17.3
  • v3.0.0-rc.10
  • v2.17.2
  • v3.0.0-rc.9
  • v2.17.1
  • 3.0.0-rc.8
  • 2.17.0
  • v3.0.0-rc.7
  • v2.16.0
  • v3.0.0-rc.6
  • v3.0.0-rc.4
  • v3.0.0-rc.3
  • 3.0.0-rc.3
  • v3.0.0-rc.1
  • v2.15.0
  • v3.0.0-rc.0
  • v2.14.1
  • v2.14.0
  • v2.13.1
  • v2.13.0
  • v2.12.2
  • v2.12.1
  • v2.12.0
  • v2.11.0
  • v2.10.5
  • v2.10.4
  • v2.10.3
  • v2.10.2
  • v2.10.1
  • v2.10.0

Description

Insufficient Session Expiration vulnerability in team-alembic AshAuthentication and AshAuthentication Phoenix allows a revoked session to remain fully authenticated.

A resource configured with session_identifier :jti and require_token_presence_for_authentication? disabled stores its session value as <jti>:<subject>. The jti is there so that signing out can revoke that one session. Neither reader consults it: AshAuthentication.Plug.Helpers.authenticate_resource_from_session/4 and AshAuthentication.Phoenix.LiveSession.on_mount/4 both split the value with split_identifier/2, discard the jti and pass the bare subject to AshAuthentication.subject_to_user/3, which reloads the record. The token-presence branch of each function does check its token, calling AshAuthentication.TokenResource.Actions.get_token/3 with the jti and the purpose user. Because the revocation record is never read, neither its revoked state nor its expiry constrains the session, so a session captured before sign-out keeps working.

This issue affects ash_authentication: from 4.9.1 before 4.15.0 and from 5.0.0-rc.0 before 5.0.0-rc.14; ash_authentication_phoenix: from 2.10.0 before 2.17.4 and from 3.0.0-rc.0 before 3.0.0-rc.11.

References

  • Codex
  • Claude Code
  • VS Code
  • GitHub Copilot
  • Cursor
  • Cline
  • Windsurf
  • Google Anti-gravity
  • OpenCode
  • Pi
  • Gemini CLI
  • Hermes Agent
  • Zed
  • Junie
  • Qwen Code
  • Kiro
  • Kilo Code
  • Factory Droid

Set up GitHits for your agents

Run this command:

<> bash
npx githits@latest init

What happens next:

  1. Opens your browser to authorize GitHits
  2. Asks whether to set up GitHits at the user or project level
  3. Detects your supported AI coding tools
  4. Lets you choose which tools to configure
  5. Configures the selected tools