Skip to main content

better-auth passkey CVE-2025-71400

| EUVDEUVD-2025-210591 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-08-02 VulnCheck GHSA-44ff-3cmc-mgqf
7.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Register or compromise a valid user account
  2. Delivery
    Obtain authenticated session token
  3. Exploit
    Enumerate passkey IDs (sequential integers if useNumberId enabled)
  4. Execution
    Submit crafted POST /passkey/delete-passkey requests per ID
  5. Persist
    Victim passkeys deleted without notification
  6. Impact
    Victims denied passkey authentication on next login

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

A valid authenticated session on the better-auth application is required - exploitation is not possible unauthenticated. The target application must have the @better-auth/passkey plugin installed and version must be below 1.4.0. Applications configured with useNumberId: true (auto-incrementing integer passkey IDs) face trivial enumeration; applications using default UUID-based IDs require the attacker to obtain valid passkey IDs through other means (e.g., API leakage, prior reconnaissance), raising the practical attack complexity. No elevated privileges are required beyond a standard user session. There is no required non-default configuration beyond having the passkey plugin enabled.

Impact

The CVSS 4.0 score of 7.1 (AV:N/AC:L/AT:N/PR:L/UI:N) reflects a network-accessible, low-complexity flaw requiring only a valid authenticated session - consistent with the description. Integrity impact is rated High (VI:H) because arbitrary passkey deletion degrades the authentication posture of any account in the system; availability impact is Low (VA:L) since victims retain alternative authentication paths. Confidentiality impact is None (VC:N), confirmed by the attack mechanics: the attacker deletes data but does not read it. No EPSS score is provided in the input data, so probabilistic exploitation likelihood cannot be quantified. No KEV listing and no confirmed public exploit code were identified, suggesting opportunistic exploitation has not been observed at scale. Real-world risk is meaningfully elevated for deployments using useNumberId, where the attack degrades to a trivial sequential scan. For UUID-based deployments, risk is lower but not negligible if passkey IDs are exposed elsewhere in the application. The flaw requires authentication, which limits unauthenticated mass exploitation but does not materially protect against insider threats or compromised accounts.

Exploit ScenarioDerived

An attacker registers a legitimate account on the target application and obtains a valid session token. Using that session, they iterate over integer passkey IDs (trivially sequential when useNumberId is enabled) and submit POST /passkey/delete-passkey requests for each ID, systematically removing passkeys belonging to all other users. Victims are silently locked out of passkey-based authentication on their next login attempt, potentially driving them to weaker fallback authentication methods.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 02, 2026

Insecure Direct Object Reference in the better-auth passkey plugin (npm/@better-auth/passkey < 1.4.0) permits any authenticated user to delete arbitrary passkeys belonging to other users via the POST /passkey/delete-passkey endpoint. The ctx.body.id parameter is implicitly trusted without ownership verification, meaning a valid session - regardless of privilege level - is sufficient to enumerate and destroy other users' passkey credentials. Applications configured with useNumberId (auto-incrementing integer IDs) are trivially exploitable by sequential enumeration. No public exploit or CISA KEV listing confirmed at time of analysis; a vendor-released patch exists at version 1.4.0.

RemediationAI

Upgrade @better-auth/passkey to version 1.4.0 or later, which contains the fix introduced in commit 06d68239e (https://github.com/better-auth/better-auth/commit/06d68239e). The vendor advisory is available at https://github.com/better-auth/better-auth/security/advisories/GHSA-4vcf-q4xf-f48m. If an immediate upgrade is not feasible, a compensating control is to place authentication middleware at the /passkey/delete-passkey endpoint that validates the requesting session owns the supplied passkey ID before executing deletion - this adds a server-side ownership assertion the library currently omits. Disabling the passkey plugin entirely eliminates the attack surface at the cost of removing passkey-based authentication for all users. Applications using useNumberId should treat this with heightened urgency given the trivial enumeration path; switching to UUID-based IDs without patching does not fix the root authorization flaw.

Affected VersionsENISA

passkey 0 <1.4.0

Affected Packages

npm @better-auth/passkey fix: 1.4.0
euvd passkey fix: 1.4.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

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

Technical ContextAI · show details

The vulnerability is rooted in CWE-639 (Authorization Through User-Controlled Key): the passkey deletion handler accepts a client-supplied passkey ID and queries the deletion directly without asserting that the requesting session owns that passkey. The affected component is the @better-auth/passkey npm plugin for the better-auth authentication framework (CPE: cpe:2.3:a:better-auth:passkey:*:*:*:*:*:*:*:*, all versions < 1.4.0). The POST /passkey/delete-passkey endpoint is the specific attack surface. When the application enables useNumberId, passkey IDs are sequential integers rather than UUIDs, making full enumeration and bulk deletion of all passkeys in the system straightforward with a loop of crafted requests. UUID-based deployments face higher enumeration difficulty but remain vulnerable if IDs are leaked through other application surfaces.

Know when Passkey 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 (VulnCheck) PRIMARY 7.1 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
vuln.today AI 7.1 HIGH

Network endpoint, low complexity; PR:L for required valid session; I:H for arbitrary passkey deletion; A:L for partial authentication disruption; no confidentiality impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 02, 2026 - 13:01 EUVD
CVE Published
Aug 02, 2026 - 12:15 cve.org
HIGH 7.1

DescriptionCVE.org

better-auth passkey versions before 1.4.0 contain an insecure direct object reference vulnerability in the passkey deletion endpoint that allows authenticated users to delete arbitrary passkeys by ID. Attackers with valid sessions can submit crafted requests to the delete-passkey endpoint with enumerated passkey IDs to remove other users' passkeys.

Executive ViewAI

Why It Matters

The better-auth passkey plugin (npm/@better-auth/passkey versions below 1.4.0) contains an access control vulnerability allowing any authenticated user to delete passkey credentials belonging to other users without authorization. This flaw compromises credential availability and enables attackers with valid sessions to lock out targeted users by destroying their authentication credentials. Organizations using this plugin face immediate risk of user access denial and should patch to version 1.4.0.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
newer niche npm auth library, limited enterprise production footprint
Social Media
3
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL 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 Yes
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
Partial

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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