Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister or compromise a valid user account
-
DeliveryObtain authenticated session token
-
ExploitEnumerate passkey IDs (sequential integers if useNumberId enabled)
-
ExecutionSubmit crafted POST /passkey/delete-passkey requests per ID
-
PersistVictim passkeys deleted without notification
-
ImpactVictims 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 |
| 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 |
| 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 |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.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
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.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2025-210591
GHSA-44ff-3cmc-mgqf
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB