Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-accessible unauthenticated endpoint with low complexity; limited to low confidentiality and integrity impact with no scope change or availability effect.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
Vaultwarden is a Bitwarden-compatible server written in Rust. Prior to 1.36.0, Vaultwarden's SSO discovery and pre-validation flow returned organization-related SSO metadata including organizationIdentifier values for arbitrary email addresses and allowed a valid pre-validation JWT to be obtained with only the discovered identifier, enabling SSO-enabled organization enumeration and authentication workflow abuse. This issue is fixed in version 1.36.0.
AnalysisAI
Vaultwarden's SSO discovery endpoint exposed real organization SSO metadata - including organizationIdentifier values - to unauthenticated requests for arbitrary email addresses, enabling organization enumeration and authentication workflow abuse. All Vaultwarden deployments prior to 1.36.0 with SSO enabled are affected; an attacker with network access could query the /organizations/domain/sso/verified endpoint with any email address to harvest real org names and identifiers, then leverage those identifiers to obtain a valid pre-validation JWT through the prevalidate() flow without legitimate credentials. No public exploit code is identified and this vulnerability is not listed in the CISA KEV catalog at time of analysis.
Technical ContextAI
Vaultwarden (CPE: cpe:2.3:a:dani-garcia:vaultwarden:*:*:*:*:*:*:*:*) is a Rust-based, Bitwarden-compatible self-hosted password management server. The affected code path centers on the /organizations/domain/sso/verified POST endpoint and the SSO prevalidate() function in src/api/identity.rs and src/api/core/organizations.rs. Prior to 1.36.0, the get_org_domain_sso_verified handler called Organization::find_org_user_email with an attacker-supplied email address, returning actual organization names and organizationIdentifier values from the database. CWE-287 (Improper Authentication) applies because the pre-validation JWT issuance in prevalidate() accepted any valid organizationIdentifier as sufficient to issue a token, without verifying the requestor's actual membership or authentication status. The fix replaces the real lookup with a static dummy response (FAKE_SSO_IDENTIFIER) and introduces a binding_hash column in the sso_auth table (across SQLite, PostgreSQL, and MySQL migrations) alongside cookie-based SSO session binding (VW_SSO_BINDING cookie in oidcsignin) to prevent pre-validation JWT reuse.
RemediationAI
Upgrade to Vaultwarden 1.36.0 or later, available at https://github.com/dani-garcia/vaultwarden/releases/tag/1.36.0; this is the only complete fix. The 1.36.0 release includes database schema migrations (adding binding_hash to the sso_auth table for SQLite, PostgreSQL, and MySQL) that will run automatically on first startup - no manual migration step is required, but a database backup before upgrading is advisable. If immediate upgrade is not possible and SSO is enabled, a compensating control is to restrict network access to the /organizations/domain/sso/verified and /identity/connect/oidc-signin endpoints at the reverse proxy or firewall layer, limiting access to known client IP ranges; the trade-off is that legitimate SSO-initiated logins from dynamic IPs will fail. Disabling SSO entirely (SSO_ENABLED=false) eliminates the vulnerable code path but removes SSO-based authentication for all users.
More in Vaultwarden
View allTwo-factor authentication bypass in Vaultwarden 1.34.3 and earlier allows authenticated attackers to circumvent 2FA prot
Cross-organization authorization bypass in Vaultwarden (the Rust-based, self-hosted Bitwarden-compatible server) prior t
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
Session hijacking via a broken SSO/OAuth authorization flow affects Vaultwarden (the Rust-based Bitwarden-compatible ser
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
Brute-force protection bypass in Vaultwarden (the Rust Bitwarden-compatible server) before 1.35.4 lets unauthenticated r
Insufficient session expiration in Vaultwarden prior to 1.35.5 allows an attacker holding a previously obtained refresh
Vaultwarden versions prior to 1.35.3 allow authenticated organization members to bypass collection-level access controls
Server-side request forgery (SSRF) in Vaultwarden's icon fetching endpoint allows blind internal network and port discov
Same weakness CWE-287 – Improper Authentication
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-44694