Vulnerability advisory
EEF-CVE-2026-86533
Revoked session accepted because the session jti is never checked in AshAuthentication and AshAuthentication Phoenix
Also known as CVE-2026-86533GHSA-m6x4-4gvp-xwjr
- CVSS 4.0
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
Affected versions
| Affected | Fixed in |
|---|---|
4.9.1 to before 4.15.0 | 4.15.0Advisories → |
5.0.0-rc.0 to before 5.0.0-rc.14 | 5.0.0-rc.14Advisories → |
Also listed as affected (37) | |
| Affected | Fixed in |
|---|---|
2.10.0 to before 2.17.4 | 2.17.4Advisories → |
3.0.0-rc.0 to before 3.0.0-rc.11 | 3.0.0-rc.11Advisories → |
Repository
| Affected commits | Fixed by commit |
|---|---|
| GIT github.com/team-alembic/ash_authentication ↗ | |
| fcaeb73f76f8f2e9aef8bf637690d2a20dd97596 to before a3f49f758f013d2ff086dd9c5ef2d94e921711b4 | a3f49f758f013d2ff086dd9c5ef2d94e921711b4 |
| Not specified | e28e911caa9728d76329afdb0fb26742ffe4eeef |
Also listed as affected (37)
| |
| GIT github.com/team-alembic/ash_authentication_phoenix ↗ | |
| a3253fb4fc7145aeb403537af1c24d3a8d51ffb1 to before f7ab005a2aac09707a25521653c94893d328cc52 | f7ab005a2aac09707a25521653c94893d328cc52 |
| Not specified | 0135217e34e621dac79ae3d9559aeee49304b0aa |
| GIT github.com/team-alembic/ash_authentication_phoenix ↗ | |
| 0135217e34e621dac79ae3d9559aeee49304b0aa to before f7ab005a2aac09707a25521653c94893d328cc52 | f7ab005a2aac09707a25521653c94893d328cc52 |
| Not specified | 0135217e34e621dac79ae3d9559aeee49304b0aa |
Also listed as affected (30)
| |
Description
Summary
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
- Advisorygithub.com/team-alembic/ash_authentication_phoenix/security/advisories/GHSA-m6x4-4gvp-xwjr ↗
- Webcna.erlef.org/cves/CVE-2026-86533.html ↗
- Advisorygithub.com/team-alembic/ash_authentication/security/advisories/GHSA-w374-hvrx-66hg ↗
- Webgithub.com/team-alembic/ash_authentication/commit/fcaeb73f76f8f2e9aef8bf637690d2a20dd97596 ↗
- Fixgithub.com/team-alembic/ash_authentication/commit/a3f49f758f013d2ff086dd9c5ef2d94e921711b4 ↗
- Fixgithub.com/team-alembic/ash_authentication/commit/e28e911caa9728d76329afdb0fb26742ffe4eeef ↗
- Webgithub.com/team-alembic/ash_authentication_phoenix/commit/a3253fb4fc7145aeb403537af1c24d3a8d51ffb1 ↗
- Webgithub.com/team-alembic/ash_authentication_phoenix/commit/0135217e34e621dac79ae3d9559aeee49304b0aa ↗
- Fixgithub.com/team-alembic/ash_authentication_phoenix/commit/f7ab005a2aac09707a25521653c94893d328cc52 ↗
- Packagehex.pm/packages/ash_authentication ↗
- Packagehex.pm/packages/ash_authentication_phoenix ↗