Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain victim refresh token via theft/malware
-
DeliveryVictim rotates security_stamp (password/key/email change)
-
ExploitSubmit refresh_token grant to /identity/connect/token
-
ExecutionReceive new valid access token
-
ImpactRead and modify vault entries
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 the attacker to already hold a valid refresh token issued before the security_stamp rotation - obtained out-of-band via device theft, malware, or session hijacking; the flaw cannot be triggered without this pre-existing token. It affects Vaultwarden <= 1.35.4. The defining condition is that the security-sensitive operations which rotate the stamp (password change, KDF change, key rotation, email change, org admin password reset, and emergency access takeover) do NOT delete Device records or rotate the device refresh_token, so stolen refresh tokens survive them. Emergency access takeover is the most dangerous case because it sends no logout notification. Limiting factors: only 'Deauthorize Sessions' (which deletes devices) or an admin action (post_sstamp, deauth_user, disable_user, all of which call Device::delete_all_by_user) actually invalidates the refresh token, so a victim who takes those specific steps is protected. |
| Impact | Signals are mixed and point to a real but non-urgent fix rather than an emergency. The CVSS 3.1 base score is 8.1 (High) with AV:N/AC:L/PR:L/UI:N and C:H/I:H/A:N, reflecting network reachability and total loss of vault confidentiality and integrity once the flaw is triggered. However, exploitation is gated on the attacker already possessing a valid refresh token, which the SSVC framework captures as Exploitation: poc, Automatable: no, Technical Impact: total - i.e., severe impact but no scalable, self-propagating exploitation path. This aligns with the very low EPSS score of 0.03% (8th percentile), indicating no expectation of widespread opportunistic exploitation. The vulnerability is NOT in CISA KEV, so there is no confirmed active exploitation; the low EPSS combined with the precondition of prior token theft is consistent with a targeted, post-compromise persistence problem rather than mass exploitation. The vuln.today decision label is 'this_week', so this should be remediated promptly but is not flagged as act_now/emergency. Net assessment: a genuine, high-impact session-management weakness worth patching on a near-term schedule, not a high-CVSS-but-trivial issue, yet also not a drop-everything event given the required precondition and absent KEV/high-EPSS signals. |
| Exploit ScenarioDerived | An attacker who has already obtained a user's refresh token (via device theft, malware, or session hijacking) retains it while the victim, suspecting compromise, changes their master password, rotates keys, or changes email - actions that rotate the security_stamp and are expected to end all sessions. Because the refresh flow never checks the security stamp, the attacker submits the old refresh token to /identity/connect/token and receives a fresh, fully valid access token, regaining read/write access to the vault. A detailed step-by-step PoC (curl commands tested on v1.35.4) is published in the GitHub Security Advisory, though it is not independently verified here as a weaponized exploit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv3 – Oct 26, 2026
Session persistence in Vaultwarden 1.35.4 and earlier lets a stolen refresh token outlive the account-hardening steps a victim takes: password change, KDF change, key rotation, email change, org-admin password reset and emergency-access takeover all rotate the security_stamp but leave Device records and their refresh tokens intact. Because the refresh endpoint never compares the stamp, an attacker already holding that token can mint new access tokens and continue reading or modifying vault entries. The advisory ships a full curl-based reproduction (SSVC exploitation: poc) but there is no CISA KEV listing and EPSS is only 0.03% (8th percentile), so this is a real but non-urgent fix scheduled as 'this_week'; exploitation requires authenticated, prior possession of the refresh token (CVSS PR:L).
Earlier versions of this analysis (2)
Vaultwarden 1.35.4 and earlier leaves previously issued refresh tokens valid after the user's security_stamp is rotated by password change, KDF change, key rotation, email change, organization-admin password reset, or emergency access takeover, so anyone holding an old refresh token can keep minting new access tokens and retain full read/write access to the vault. Access tokens are correctly rejected once the stamp changes, but the refresh flow never compares the stamp, so the session survives the very action the user took to secure the account. The attacker must already possess a valid refresh token (CVSS PR:L), making this a post-compromise persistence weakness rather than an entry point; EPSS is 0.03% (8th percentile) and the advisory publishes proof-of-concept reproduction steps, while CISA SSVC rates technical impact as total with exploitation at poc level. A vendor patch is available in 1.35.5.
Insufficient session expiration in Vaultwarden prior to 1.35.5 allows an attacker holding a previously obtained refresh token to maintain persistent vault access even after the legitimate account owner performs security-remediation actions. Operations that rotate the internal security_stamp - including password change, key rotation, KDF change, email change, org admin password reset, and emergency access takeover - fail to invalidate outstanding refresh tokens, leaving stolen sessions alive. A proof-of-concept exists per SSVC data, though EPSS at 0.03% (8th percentile) indicates exploitation remains uncommon and non-automated, consistent with the need for pre-existing token access.
RemediationAI
Vendor-released patch: upgrade to Vaultwarden 1.35.5, which the advisory states fixes the issue. Note the documented side effect of the fix design: adding an sstamp claim to the refresh token structurally changes the refresh JWT, so refresh tokens issued before the upgrade cannot be validated and existing users are effectively force-logged-out and must re-authenticate - plan the upgrade window accordingly rather than at peak use. Where upgrading must be deferred, the only invalidation paths the sources confirm are the 'Deauthorize Sessions' feature and the admin operations post_sstamp, deauth_user and disable_user, all of which call Device::delete_all_by_user and remove the Device records that make a stolen refresh token usable; the trade-off is that these terminate every active session for the account, and a victim who does none of them after a password, KDF, key or email change (or after an emergency-access takeover, which sends no logout notification at all) remains exposed. Because exploitation presupposes an attacker already holding a refresh token, incident response should focus on token exposure - hunt for anomalous /identity/connect/token refresh grants and re-authenticate affected accounts after patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Vaultwarden is a Rust implementation of the Bitwarden server (CPE cpe:2.3:a:dani-garcia:vaultwarden, all versions before 1.35.5). Access-token validation is stamp-aware: Headers::from_request in src/auth.rs checks that the sstamp claim embedded in the JWT matches the user's current security_stamp in the database, so rotating the stamp correctly kills outstanding access tokens. The refresh path bypasses that control: refresh_tokens (src/auth.rs, ~line 1205) decodes the refresh JWT, looks up the Device by its device_token, reloads the user and issues fresh AuthTokens without ever inspecting the stamp, and the RefreshJwtClaims struct has no security_stamp field at all. This is CWE-613 (Insufficient Session Expiration) - a session-invalidation gap, not a memory-safety or injection flaw. Upstream Bitwarden avoids it by persisting the SecurityStamp claim into the grant and re-checking it in ProfileService.IsActiveAsync on every refresh. Six Vaultwarden operations (post_password, post_kdf, post_rotatekey, post_email in accounts.rs, put_reset_password in organizations.rs, password_emergency_access in emergency_access.rs) rotate the stamp without calling Device::delete_all_by_user, while post_sstamp, deauth_user and disable_user do delete devices and are therefore unaffected. The trigger requires an attacker to already hold a refresh token obtained out-of-band (device theft, malware, session hijacking); the flaw cannot be reached without that pre-existing token.
Know when Vaultwarden 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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Attacker must hold a previously issued refresh token (a low-privilege credential), so PR:L; remotely reachable token refresh endpoint, low complexity, full vault read/write but no availability loss.
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
6DescriptionNVD
Vaultwarden is a Bitwarden-compatible server written in Rust. Prior to 1.35.5, refresh tokens are not invalidated when the user's security_stamp is rotated by some security-sensitive operations (password change, KDF change, key rotation, email change, org admin password reset, emergency access takeover). This allows an attacker holding a previously obtained refresh token to maintain session access even after the user has taken action to secure their account. This vulnerability is fixed in 1.35.5.
Executive ViewAI
Vaultwarden versions 1.35.4 and earlier contain a session persistence flaw that allows stolen refresh tokens to remain valid even after users perform critical security actions such as password changes or key rotations. This means a compromised token-if obtained by an attacker-could grant ongoing access to vault data despite remediation efforts. While no active exploitation has been observed, the risk to sensitive credential management warrants leadership attention.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Vaultwarden
View allTwo-factor authentication bypass in Vaultwarden 1.34.3 and earlier allows authenticated attackers to circumvent 2FA prot
Vaultwarden before 1.35.4 exposes a password-validity oracle at /api/two-factor/send-email-login when server-side email
Cross-organization authorization bypass in Vaultwarden (the Rust-based, self-hosted Bitwarden-compatible server) prior t
Vaultwarden through 1.37.3 permits authenticated users who hold a revoked or not-yet-confirmed organization membership t
Session hijacking via a broken SSO/OAuth authorization flow affects Vaultwarden (the Rust-based Bitwarden-compatible ser
Vaultwarden versions prior to 1.35.4 fail to properly enforce collection management permissions, allowing authenticated
Vaultwarden versions before 1.35.4 contain a privilege escalation vulnerability that allows authenticated Manager-level
Improper authorization in Vaultwarden (self-hosted Bitwarden-compatible server) before 1.35.5 lets an authenticated user
Authentication bypass (account takeover) in Vaultwarden before 1.36.0 allows an attacker who controls a federated identi
vaultwarden is an unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs. Rated high sev
Vaultwarden's SSO discovery endpoint exposed real organization SSO metadata - including organizationIdentifier values -
Vaultwarden versions prior to 1.35.3 allow authenticated organization members to bypass collection-level access controls
EUVD-2026-29339
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB