Skip to main content

@better-auth/stripe EUVDEUVD-2026-51806

| CVE-2026-67329 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-08-01 VulnCheck GHSA-mp8j-p2mc-4hgv
7.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Attacker joins victim org as low-privilege member
  2. Delivery
    Sets victim org as active session organization
  3. Exploit
    Crafts subscription action request with permitted org ID in query string, no org ID in body
  4. Execution
    Middleware approves request via authorizeReference using query-string org ID
  5. Persist
    Handler ignores query string, falls back to active session org ID
  6. Impact
    Billing action executes against victim organization

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

Four conditions must simultaneously be true for exploitation. First, subscription.enabled: true must be set in the @better-auth/stripe plugin configuration - this is not the default state. Second, organization.enabled: true must be configured along with a developer-supplied authorizeReference callback; without this callback the org authorization gate does not exist. Third, the attacker must be an authenticated member (any role) of at least two organizations on the platform: one organization they are permitted to manage (used to pass the middleware check via the query string) and the victim organization. Fourth, the attacker's active session organization must be set to the victim organization before the malicious request is sent, since the handler falls back to session.activeOrganizationId. The attack is bounded to organizations the attacker already belongs to - arbitrary cross-tenant attacks against unrelated organizations are not possible. Deployments using only user-level subscriptions (no org subscriptions) are entirely unaffected regardless of version.

Impact

The CVSS 4.0 vector AV:N/AC:L/AT:N/PR:L/UI:N places this as a network-accessible, low-complexity, low-privilege attack, yielding a 7.1 High score - primarily driven by the VI:H (high integrity impact) reflecting ability to cancel, change, or restore subscriptions. However, there are meaningful real-world limiting factors that the raw score does not capture. Exploitation requires four simultaneously true deployment conditions: organization subscriptions enabled, the authorizeReference callback configured, the attacker authenticated as a member of at least two organizations, and the attacker's active session already set to the target org. The attack surface is strictly bounded - the victim organization must be one the attacker already belongs to, ruling out arbitrary cross-tenant attacks against unrelated organizations. No KEV listing and no public POC code have been identified at time of analysis, suggesting limited observed exploitation. The VC:L (low confidentiality) component reflects that billing details including payment methods, invoices, and subscription state are accessible. ENISA EUVD-2026-51806 independently tracks this. Overall: this is a genuine High-severity finding for any multi-tenant SaaS using organization billing, but the configuration prerequisites reduce the realistic population of exposed deployments.

Exploit ScenarioDerived

An attacker who holds low-privilege membership in Organization A (the victim, set as their active session org) and also manages Organization B crafts a POST request to a subscription action endpoint, placing Organization B's ID in the query string so the middleware's authorizeReference check approves the request, while deliberately omitting the organization ID from the request body. The handler finds no body org ID, falls back to the session's active org (Organization A), and executes the billing action - such as subscription cancellation or plan downgrade - against Organization A. No public POC exists, but the exploit path is mechanically trivial given the full parameter manipulation details published in the GHSA advisory.

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 01, 2026

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.

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.

Affected VersionsENISA

stripe 1.4.11 <1.6.21
stripe 1.7.0-beta.0 <1.7.0-beta.10

Affected Packages

npm @better-auth/stripe fix: 1.6.21, 1.7.0-beta.10
euvd stripe fix: 1.6.21, 1.7.0-beta.10

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 @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.

Know when Stripe 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:L/VI:H/VA:N/SC:N/SI:N/SA:N
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
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
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.

Executive ViewAI

Why It Matters

The @better-auth/stripe library contains a billing authorization bypass allowing authenticated users with access to one organization to execute subscription and billing operations against other organizations they do not control. While no public exploit has been identified at time of analysis, organizations relying on this library for multi-tenant billing face direct financial risk from unauthorized subscription cancellations, downgrades, and billing portal access. Immediate patch deployment is required to mitigate this threat.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
niche npm auth plugin for specific better-auth users
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