CVE-2026-78223

Source
https://cve.org/CVERecord?id=CVE-2026-78223
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-78223.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-78223
Aliases
Published
2026-09-17T13:09:19Z
Modified
2026-09-20T11:30:18Z
Severity
  • 6.9 (Medium) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N CVSS Calculator
Summary
Token revocation record built from unverified JWT claims in AshAuthentication
Details

Improper Verification of Cryptographic Signature vulnerability in team-alembic AshAuthentication allows a caller of the token revocation action to neutralise a revocation or write arbitrary rows into the token resource.

AshAuthentication.TokenResource.RevokeTokenChange.change/3 reads the :token argument and decodes it with AshAuthentication.Jwt.peek/1, which delegates to Joken.peek_claims/1 and performs no signature check, unlike Jwt.verify/4. The jti, exp and sub claims it returns are written straight onto the revocation record, guarded only by byte_size(token) > 0. Because expires_at derives from the attacker-chosen exp, a forged copy of a genuine token that keeps the real jti but backdates exp yields a revocation row that is already expired: expunge_expired removes it and the genuine token passes revoked? again. Arbitrary jti and sub values can be inserted the same way.

This issue affects ash_authentication: from 0.2.0 before 4.15.0 and from 5.0.0-rc.0 before 5.0.0-rc.14.

Database specific
{
    "cna_assigner": "EEF",
    "cwe_ids": [
        "CWE-347"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/78xxx/CVE-2026-78223.json",
    "unresolved_ranges": [
        {
            "extracted_events": [
                {
                    "introduced": "a939dde9b917c072cdf10c4b0913a9886a4b0231"
                },
                {
                    "fixed": "*"
                }
            ],
            "source": "AFFECTED_FIELD"
        }
    ]
}
References

Affected packages

Git / github.com/team-alembic/ash_authentication

Affected ranges

Type
GIT
Repo
https://github.com/team-alembic/ash_authentication
Events
Database specific
Show details
{
    "extracted_events": [
        {
            "introduced": "0.2.0"
        },
        {
            "fixed": "4.15.0"
        },
        {
            "introduced": "5.0.0-rc.0"
        },
        {
            "fixed": "5.0.0-rc.14"
        }
    ],
    "source": [
        "DESCRIPTION",
        "REFERENCES"
    ]
}

Affected versions

5.*
5.0.0-rc.8
5.0.0-rc.9
v0.*
v0.2.0
v0.2.1
v0.3.0
v0.4.1
v0.4.2
v0.4.3
v0.5.0
v0.6.0
v0.6.1
v1.*
v1.0.0
v2.*
v2.0.0
v2.0.1
v3.*
v3.0.0
v3.0.1
v3.0.2
v3.0.3
v3.0.4
v3.1.0
v3.10.0
v3.10.1
v3.10.2
v3.10.4
v3.10.5
v3.10.6
v3.10.7
v3.10.8
v3.11.0
v3.11.1
v3.11.10
v3.11.12
v3.11.13
v3.11.14
v3.11.15
v3.11.16
v3.11.2
v3.11.3
v3.11.4
v3.11.5
v3.11.6
v3.11.7
v3.11.8
v3.11.9
v3.12.0
v3.12.1
v3.12.2
v3.12.3
v3.12.4
v3.2.0
v3.2.1
v3.2.2
v3.3.0
v3.3.1
v3.4.0
v3.4.1
v3.4.2
v3.5.0
v3.5.1
v3.5.2
v3.5.3
v3.6.1
v3.7.0
v3.7.1
v3.7.2
v3.7.3
v3.7.4
v3.7.5
v3.7.6
v3.7.8
v3.7.9
v3.9.0
v3.9.2
v3.9.3
v3.9.4
v3.9.5
v3.9.6
v4.*
v4.0.0
v4.0.0-rc.0
v4.0.0-rc.1
v4.0.0-rc.2
v4.0.0-rc.3
v4.0.0-rc.4
v4.0.0-rc.5
v4.0.0-rc.6
v4.0.0-rc.7
v4.0.1
v4.0.2
v4.0.3
v4.0.4
v4.1.0
v4.10.0
v4.11.0
v4.12.0
v4.13.0
v4.13.1
v4.13.2
v4.13.3
v4.13.4
v4.13.5
v4.13.6
v4.13.7
v4.14.0
v4.14.1
v4.14.2
v4.2.0
v4.2.1
v4.2.2
v4.2.3
v4.2.5
v4.2.7
v4.3.0
v4.3.1
v4.3.10
v4.3.12
v4.3.2
v4.3.3
v4.3.4
v4.3.6
v4.3.7
v4.3.9
v4.4.0
v4.4.1
v4.4.2
v4.4.3
v4.4.4
v4.4.5
v4.4.6
v4.4.7
v4.4.8
v4.4.9
v4.5.1
v4.5.2
v4.5.3
v4.5.4
v4.5.5
v4.5.6
v4.6.0
v4.6.1
v4.6.2
v4.6.3
v4.6.4
v4.7.0
v4.7.1
v4.7.2
v4.7.3
v4.7.4
v4.7.5
v4.7.6
v4.7.7
v4.8.0
v4.8.1
v4.8.2
v4.8.3
v4.8.4
v4.8.5
v4.8.7
v4.9.0
v4.9.1
v4.9.2
v4.9.3
v4.9.4
v4.9.5
v4.9.6
v4.9.7
v4.9.8
v4.9.9
v5.*
v5.0.0-rc.0
v5.0.0-rc.1
v5.0.0-rc.10
v5.0.0-rc.11
v5.0.0-rc.12
v5.0.0-rc.13
v5.0.0-rc.2
v5.0.0-rc.3
v5.0.0-rc.4
v5.0.0-rc.5
v5.0.0-rc.6
v5.0.0-rc.7

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-78223.json"