Description
Shiori's CheckToken function (internal/domains/auth.go) validates only the JWT's HMAC signature and returns the embedded claims.Account object unmodified, never re-fetching the account from the database. No session store or token-revocation mechanism exists in the codebase. Deleting an account or demoting it from owner to a regular role has no effect on tokens already issued to that account — a deleted or demoted owner's token continues authenticating with its original owner-level privileges until natural expiry, which can be up to 30 days with 'remember me' enabled.
Published: 2026-08-05
Score: 8.2 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Shiori’s CheckToken function validates only the JWT’s HMAC signature and returns the embedded claims without consulting the database for the current account state. Because the code never re‑fetches the account or checks a revocation list, a token belonging to a deleted or demoted user continues to grant the original owner privileges until it naturally expires, which can be up to 30 days when the "remember me" feature is enabled. This flaw is an improper authorization failure, consistent with CWE‑613, and allows an attacker holding a valid token to maintain elevated access after the intended revocation of those privileges.

Affected Systems

The vulnerability affects the Shiori web application distributed under the go‑shiori:shiori project. No specific version range is provided in the advisory, so the issue applies to any releases that include the unmodified CheckToken implementation described in the repository.

Risk and Exploitability

The CVSS score of 8.2 reflects a high‑impact, high‑confidence scenario. Although no EPSS score is available, the fact that a token can remain valid for up to 30 days increases the attack window. The vulnerability is not listed in the CISA KEV catalog, suggesting that it may not yet have shown widespread exploitation. The most likely attack vector is the theft or reuse of an existing, still‑valid token; an adversary can use such a token on any instance of the affected Shiori application to perform privileged operations normally reserved for owners.

Generated by OpenCVE AI on August 5, 2026 at 08:38 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to the latest Shiori release that implements token revocation or re‑validation of account state.
  • Disable or reduce the "remember me" token lifetime to limit the maximum window in which stale tokens remain valid.
  • Implement a token revocation list or periodic server‑side verification to invalidate tokens when an account is deleted or demoted.
  • If an immediate upgrade is not possible, block all tokens associated with deleted or demoted accounts by adding middleware that checks the database before allowing access.

Generated by OpenCVE AI on August 5, 2026 at 08:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

References
History

Wed, 05 Aug 2026 09:30:00 +0000

Type Values Removed Values Added
First Time appeared Go-shiori
Go-shiori shiori
Vendors & Products Go-shiori
Go-shiori shiori

Wed, 05 Aug 2026 07:30:00 +0000

Type Values Removed Values Added
Description Shiori's CheckToken function (internal/domains/auth.go) validates only the JWT's HMAC signature and returns the embedded claims.Account object unmodified, never re-fetching the account from the database. No session store or token-revocation mechanism exists in the codebase. Deleting an account or demoting it from owner to a regular role has no effect on tokens already issued to that account — a deleted or demoted owner's token continues authenticating with its original owner-level privileges until natural expiry, which can be up to 30 days with 'remember me' enabled.
Title shiori: JWT CheckToken Never Re-Validates Account State, Allowing Stale-Privilege Access After Deletion or Demotion
Weaknesses CWE-613
References
Metrics cvssV3_1

{'score': 8.2, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L'}


Subscriptions

Go-shiori Shiori
cve-icon MITRE

Status: PUBLISHED

Assigner: TuranSec

Published:

Updated: 2026-08-05T06:59:06.908Z

Reserved: 2026-08-05T06:56:15.799Z

Link: CVE-2026-71206

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-05T09:15:04Z

Weaknesses
  • CWE-613

    Insufficient Session Expiration