Skip to main content

@better-auth/stripe CVE-2026-67329

| EUVDEUVD-2026-51806 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-08-01 VulnCheck GHSA-mp8j-p2mc-4hgv
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:L/VI:H/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
vuln.today AI
7.1 HIGH

Network vector (AV:N), low-privilege auth required (PR:L); high integrity from subscription manipulation, low confidentiality from billing data exposure, no availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:H/VA:N/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 01, 2026 - 13:22 vuln.today
Analysis Generated
Aug 01, 2026 - 13:22 vuln.today
Patch available
Aug 01, 2026 - 13:01 EUVD
CVE Published
Aug 01, 2026 - 12:22 cve.org
HIGH 7.1

DescriptionCVE.org

@better-auth/stripe versions >= 1.4.11 and < 1.6.21, and >= 1.7.0-beta.0 and < 1.7.0-beta.10, contain an authorization bypass in organization subscription actions. The middleware validates the organization ID taken from the request query string against the authorizeReference callback, but the handler reads the organization ID only from the request body and falls back to the caller's active organization from their session. When these differ, an authenticated member of multiple organizations can perform subscription actions (cancel, change plan, restore, billing portal access) against an organization they belong to but should not manage, and can access another organization's billing details including payment methods, invoices, and subscription state.

AnalysisAI

Cross-organization billing authorization bypass in @better-auth/stripe allows authenticated members of multiple organizations to perform subscription actions - including plan cancellation, plan changes, restoration, and billing portal access - against organizations whose billing they should not control. The root cause is a parameter source mismatch: middleware validates the organization ID from the request query string, while the route handler resolves it from the request body and falls back to the caller's active session organization, enabling an attacker to pass authorization for one org while the action executes against another. No public exploit has been identified and no CISA KEV listing exists, but the CVSS 4.0 score of 7.1 reflects a network-accessible, low-complexity attack path with high integrity impact on billing state.

Technical ContextAI

The @better-auth/stripe npm package (cpe:2.3:a:better-auth:stripe) is an authentication and billing integration plugin that maps Stripe subscription state to the better-auth organization model. The vulnerability is classified as CWE-639 (Authorization Bypass Through User-Controlled Key), an IDOR variant in which the authorization check and the privileged operation consume different instances of the same key. The plugin's org subscription middleware reads the organization ID from either the request body or query string and passes it to the developer-configured authorizeReference callback. The route handler for subscription actions then independently re-reads the organization ID from the request body only, falling back to session.activeOrganizationId when absent. Because the query string is visible to middleware but ignored by the handler, these two resolutions can diverge. The fix, committed at 29fbcb573261242d8a05b131a9d39c9ae4352b06, resolves the org ID once in middleware and threads that single resolved value into the handler, eliminating the divergence.

RemediationAI

Upgrade @better-auth/stripe to version 1.6.21 or later on the stable release line, or to 1.7.0-beta.10 or later on the beta line; these are the vendor-confirmed patched versions per GHSA-h3rm-78g3-j7cp. The upstream fix is traceable to commit 29fbcb573261242d8a05b131a9d39c9ae4352b06 in the better-auth GitHub repository. If an immediate upgrade is not feasible, the advisory provides a targeted workaround: modify the authorizeReference callback to return false whenever the requested organization ID does not equal session.activeOrganizationId. The compensating control snippet is if (referenceId !== session.activeOrganizationId) { return false; }, which must be combined with any existing role checks. The trade-off of this workaround is that it prevents users from performing subscription actions on an org unless that org is already their active session org - applications may need UX logic to prompt users to switch their active org before performing billing operations. Advisory and VulnCheck analysis are available at https://www.vulncheck.com/advisories/better-auth-stripe-before-authorization-bypass-via-organization-subscription.

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

CVE-2026-67329 vulnerability details – vuln.today

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