CVE-2026-31835 Overview
Vaultwarden is a Bitwarden-compatible password management server written in Rust. CVE-2026-31835 affects the WebAuthn two-factor authentication flow in versions 1.35.4 and earlier. The validate_webauthn_login() function updates persistent credential metadata based on unverified authenticatorData before performing signature validation. An attacker who knows a user's password but cannot produce a valid WebAuthn signature can permanently modify the stored backup flags for that user's credential. The vulnerability is classified under [CWE-345: Insufficient Verification of Data Authenticity]. Vaultwarden version 1.35.5 contains the fix.
Critical Impact
A password-knowing attacker can persistently disable WebAuthn two-factor authentication for affected user credentials, causing a durable denial-of-service condition for the second factor.
Affected Products
- Vaultwarden versions 1.35.4 and earlier
- Vaultwarden self-hosted Bitwarden-compatible server deployments
- Any Vaultwarden instance with WebAuthn two-factor authentication enabled
Discovery Timeline
- 2026-05-05 - CVE-2026-31835 published to NVD
- 2026-05-07 - Last updated in NVD database
Technical Details for CVE-2026-31835
Vulnerability Analysis
The flaw resides in Vaultwarden's validate_webauthn_login() function, which handles the server-side verification of WebAuthn assertions during login. The function processes the authenticatorData blob submitted by the client and extracts the backup_eligible and backup_state flags. The implementation writes these flags to the persistent credential record before invoking the cryptographic signature verification routine. When signature verification fails, the prior database update is not rolled back, leaving attacker-influenced metadata committed to storage.
Because the metadata changes occur before authentication completes, an actor possessing only the account password can submit crafted assertions and durably mutate credential state. The result is a persistent denial of service against WebAuthn second-factor authentication for the targeted user. The vulnerability does not enable account takeover by itself, but it removes the protective benefit of the second factor for affected credentials.
Root Cause
The root cause is an ordering defect: state-mutating operations are performed on data that has not yet been authenticated. The function trusts client-supplied authenticatorData fields and persists them prior to verifying the WebAuthn signature that would prove their authenticity. The lack of a transactional rollback compounds the issue when verification ultimately fails.
Attack Vector
An attacker authenticates with the victim's known password and initiates a WebAuthn challenge response. The attacker submits an assertion containing manipulated backup flag bits in authenticatorData along with an invalid signature. Vaultwarden writes the modified flags to the credential record before signature validation rejects the request. Repeating the request leaves the credential in a corrupted state that disrupts subsequent legitimate WebAuthn authentication attempts.
No verified public exploit code is available. Refer to the GitHub Security Advisory GHSA-x7g7-cgx5-jhx2 for the maintainer's technical write-up.
Detection Methods for CVE-2026-31835
Indicators of Compromise
- Repeated failed WebAuthn login attempts from a single source IP against one or more user accounts
- Unexpected changes to backup_eligible or backup_state values in the Vaultwarden credentials database table
- User reports that previously functional WebAuthn second-factor authentication has stopped working
- Authentication logs showing successful password validation followed by WebAuthn signature verification failures
Detection Strategies
- Audit the Vaultwarden database for credential rows whose backup flags changed without a corresponding successful authentication event
- Correlate Vaultwarden application logs with reverse-proxy access logs to identify clients that submit malformed WebAuthn assertions
- Alert on accounts that experience a high ratio of WebAuthn signature failures to successful logins
Monitoring Recommendations
- Forward Vaultwarden authentication logs to a centralized logging or SIEM platform for retention and correlation
- Monitor the /identity/connect/token and WebAuthn endpoints for abnormal request rates and repeated 4xx responses
- Track Vaultwarden version strings across self-hosted deployments to confirm patch coverage
How to Mitigate CVE-2026-31835
Immediate Actions Required
- Upgrade Vaultwarden to version 1.35.5 or later, which contains the fix for validate_webauthn_login()
- Audit user accounts with WebAuthn enabled and reset or re-register affected credentials reporting authentication failures
- Rotate any user passwords suspected of being known to unauthorized parties to prevent the precondition for this attack
Patch Information
Vaultwarden 1.35.5 corrects the ordering defect by validating the WebAuthn signature before persisting any credential metadata changes. Release artifacts and changelog details are available in the GitHub Release Note 1.35.5. Operators running container images should pull the updated tag and redeploy.
Workarounds
- Temporarily disable WebAuthn two-factor authentication and require an alternative second factor such as TOTP until the upgrade completes
- Restrict access to the Vaultwarden web interface using network-level controls such as VPN or IP allow-listing to limit exposure of the vulnerable endpoint
- Enforce strong, unique master passwords and monitor for credential reuse to reduce the likelihood that an attacker possesses the required password
# Upgrade Vaultwarden container to the patched release
docker pull vaultwarden/server:1.35.5
docker stop vaultwarden && docker rm vaultwarden
docker run -d --name vaultwarden \
-v /vw-data/:/data/ \
-p 80:80 \
vaultwarden/server:1.35.5
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


