Skip to main content

better-auth passkey EUVDEUVD-2025-210591

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

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/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
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
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

4
Source Code Evidence Fetched
Aug 02, 2026 - 13:02 vuln.today
Analysis Generated
Aug 02, 2026 - 13:02 vuln.today
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.

AnalysisAI

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.

Technical ContextAI

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.

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.

CVE-2024-56734 HIGH POC
7.9 Dec 30

Better Auth is an authentication library for TypeScript. Rated high severity (CVSS 7.9), this vulnerability is remotely

CVE-2026-41427 HIGH POC
7.1 Apr 24

Authorization bypass in the @better-auth/oauth-provider plugin for Better Auth (versions >= 1.4.8-beta.7 and < 1.6.5, pl

CVE-2026-67330 CRITICAL
9.4 Aug 01

Privilege-escalating account takeover in the @better-auth/scim plugin (versions 1.4.0-beta.27 through 1.6.21 and 1.7.0-b

CVE-2026-67336 CRITICAL
9.4 Aug 01

Authentication bypass in Better Auth before 1.6.11 stems from insecure cryptographic defaults in the legacy oidcProvider

CVE-2025-71401 CRITICAL
9.3 Aug 02

Denial of service in Better Auth (npm) before 1.4.2 lets an unauthenticated remote attacker poison the router's base pat

CVE-2025-71399 HIGH
8.8 Aug 02

Path normalization bypass in Better Auth before v1.4.5 allows unauthenticated remote attackers to circumvent `disabledPa

CVE-2026-67331 HIGH
8.7 Aug 01

Authorization bypass in @better-auth/scim versions 1.5.0 through 1.7.0-beta.3 allows any authenticated user to fully tak

CVE-2026-67327 HIGH
8.7 Aug 01

Pre-account hijacking in better-auth (npm) allows a remote attacker to gain persistent, password-based access to any vic

CVE-2026-67328 HIGH
8.6 Aug 01

Multiple authentication bypass vulnerabilities in @better-auth/sso before version 1.6.21 enable low-privileged attackers

CVE-2026-80192 HIGH
8.6 Aug 25

Two domain-ownership authentication bypass flaws in @better-auth/sso allow authenticated organization owners to compromi

CVE-2026-67337 HIGH
7.1 Aug 01

Two-factor authentication bypass in better-auth (npm) before version 1.4.9 allows network-accessible attackers holding v

CVE-2026-53515 HIGH
7.1 Jul 15

Privilege escalation in Better Auth SSO plugin (1.2.10 to <1.6.11) allows any authenticated organization member to regis

Share

EUVD-2025-210591 vulnerability details – vuln.today

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