Skip to main content

Shiori EUVDEUVD-2026-53203

| CVE-2026-71206 HIGH
Insufficient Session Expiration (CWE-613)
2026-08-05 TuranSec GHSA-m8xp-ww9g-3j6j
8.3
CVSS 3.1 · Vendor: TuranSec
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Authenticate as owner and obtain JWT
  2. Delivery
    Enable 'remember me' for 30-day token lifetime
  3. Exploit
    Admin deletes or demotes attacker's account
  4. Install
    Token revocation not triggered in CheckToken
  5. C2
    Replay stored JWT against Shiori API
  6. Execute
    Server accepts token and returns owner-level claims
  7. Impact
    Read, modify, or delete all bookmarks with owner privileges

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
Exploitation Conditions

Exploitation requires that the attacker previously authenticated to the Shiori instance as an owner-level user and retained their JWT. The critical enabling condition is the absence of server-side session revocation: the flaw manifests specifically when an administrator deletes an account or demotes it from owner to a regular role after a token has been issued. The longer the 'remember me' option was selected at login, the wider the exploitation window - up to 30 days. Exploitation is limited by: (1) the attacker must have already been a legitimate owner-level user and must possess a previously-issued, non-expired JWT; (2) the Shiori instance must be reachable over the network; (3) exploitation window closes at natural token expiry. This is NOT exploitable by external unauthenticated attackers or by regular (non-owner) users who never held an owner token. Single-user Shiori deployments are not meaningfully affected since account revocation is not a relevant operation.

Impact

The NVD CVSS 3.1 score of 8.3 High (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L) accurately reflects the mechanics: exploitation is network-accessible, low complexity, and requires no user interaction, but does require a previously-issued low-privilege (owner-level) JWT - PR:L is appropriate. Real-world risk is meaningful but context-dependent: this flaw matters most in multi-user Shiori deployments with staff turnover or access control requirements, such as small teams or organizations using shared bookmark managers. For single-user personal deployments, the risk surface is negligible. There is no CISA KEV entry and no confirmed POC, so EPSS-equivalent exploitation pressure is likely low. The 30-day maximum window with 'remember me' is the critical amplifier - an attacker who plans ahead (e.g., saves a token before knowing their account will be deleted) has a wide window. The Availability impact component (A:L) is mild. No conflicting signals between CVSS vector and description - the network vector and low complexity are consistent with a web API token replay attack.

Exploit ScenarioDerived

A departing employee who held an owner role in a shared Shiori instance saves their JWT before their account is deleted by an administrator. After the account is removed, they replay the saved token against the Shiori API; since CheckToken validates only the HMAC and returns the embedded claims without database re-check, the server accepts the request and grants full owner-level access to all bookmarks, tags, and administrative endpoints for up to 30 days if 'remember me' was used at login. No public exploit code has been identified at time of analysis, but the attack requires only standard HTTP tooling to replay a bearer token.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Aug 05, 2026

Privilege persistence in Shiori, the self-hosted bookmarks manager (go-shiori/shiori), allows a deleted or demoted owner to continue authenticating with full owner-level privileges for up to 30 days after account revocation. The root cause is that CheckToken in internal/domains/auth.go validates only the JWT HMAC signature and trusts the embedded claims without re-querying the database, and no token revocation or session store mechanism exists anywhere in the codebase. An attacker who previously held an owner-level account - such as a terminated employee - retains full read/write access to all bookmarks and administrative functions until the token's natural expiry. No active exploitation confirmed (no CISA KEV listing); no public exploit code identified at time of analysis.

Earlier versions of this analysis (1)
v1 Aug 05, 2026 - 07:56 CVSS 8.2

Insufficient session expiration in Shiori allows a deleted or role-demoted owner to retain full owner-level API access for up to 30 days via a previously issued JWT. The CheckToken function in internal/domains/auth.go validates only the HMAC signature and returns the embedded claims object without re-querying the database, making server-side account revocation entirely ineffective. No public exploit or CISA KEV listing exists at time of analysis, but the condition is trivially reproducible by any user who retains a valid token after administrative action against their account.

RemediationAI

No vendor-released patch has been identified at time of analysis - no fixed version appears in the available references or EUVD-2026-53203 data. Administrators should monitor https://github.com/go-shiori/shiori for a remediation release that introduces server-side token revocation (e.g., a token blocklist or session store) or enforces database re-validation on each authenticated request in CheckToken. As a compensating control, disabling the 'remember me' feature reduces maximum token lifetime and narrows the exploitation window, though this does not eliminate the flaw. Restricting Shiori access to trusted internal networks or VPN-only reduces exposure in the event a former user retains a token. For deployments with sensitive bookmarks, consider rotating the JWT signing secret (HMAC key) when revoking an owner account - this invalidates all previously issued tokens system-wide but also forces all current users to re-authenticate. Note that the signing-key rotation approach is a blunt instrument with operational impact. A true fix requires implementing server-side session tracking or per-request database role verification in the application code.

Affected VersionsENISA

shiori 0

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Shiori is a self-hosted, Go-based bookmarks manager (CPE: cpe:2.3:a:go-shiori:shiori:*:*:*:*:*:*:*:*). It uses JSON Web Tokens (JWT) for session management. The flaw maps to CWE-613 (Insufficient Session Expiration): the CheckToken function in internal/domains/auth.go validates the HMAC signature to confirm the token is cryptographically authentic but immediately returns the embedded claims.Account object as authoritative - without querying the database to confirm the account still exists or retains its current role. Because there is no server-side session store and no token blocklist or revocation endpoint, the server has no mechanism to invalidate an issued token before its TTL expires. With 'remember me' enabled, this TTL extends to 30 days. The trust boundary violation is that the JWT claim is treated as the ground truth for identity and role, while the database - the actual source of truth for account state - is never consulted post-issuance.

Know when Shiori gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (TuranSec) PRIMARY 8.3 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
vuln.today AI 8.3 HIGH

PR:L reflects that a previously-issued owner JWT is required; AV:N and AC:L are appropriate for a straightforward token replay over HTTP with no special conditions.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (TuranSec).

CVSS VectorVendor: TuranSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
Low

Lifecycle Timeline

3
Analysis Updated
Aug 05, 2026 - 08:34 vuln.today
v2 - CVSS changed
CVSS changed
Aug 05, 2026 - 08:22 NVD
8.2 (HIGH) 8.3 (HIGH)
CVE Published
Aug 05, 2026 - 06:59 cve.org
HIGH 8.2

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

Shiori bookmarks manager (all versions) contains a privilege persistence flaw allowing deleted or demoted owners to retain full administrative access for up to 30 days post-revocation through JWT tokens lacking session revocation checks. While no public exploit identified at time of analysis, this creates a critical insider threat: terminated employees retain unrestricted access to all organizational bookmarks and system functions. No vendor patch exists; immediate audit and compensating controls are required.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Force token expiration by restarting Shiori services on a daily schedule (reduces compromise window from 30 days to <24 hours); (2) Restrict network-level access via firewall rules or VPN requirement, limiting exposure surface; (3) Implement comprehensive audit logging of all Shiori access with real-time alerting on owner-level actions and export to external SIEM; (4) Maintain immutable audit trails of user account changes in directory services; (5) If bookmarks are non-critical, disable Shiori entirely pending resolution.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Low
niche self-hosted bookmark manager, limited enterprise footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy