Description
@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.
Published: 2026-08-01
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability lies in the @better-auth/stripe middleware where the organization ID used for authorization checks is taken from the request query string. The actual handler, however, extracts the organization ID only from the request body and if none is present, defaults to the caller’s active organization stored in their session. This mismatch allows an authenticated user who belongs to multiple organizations to perform any subscription action—such as cancelling, changing plans, restoring, or accessing the billing portal—against an organization they are not permitted to manage. Consequently the user can also view another organization’s billing details, including payment methods, invoices, and subscription status. This is a classic example of an authorization bypass (CWE‑639).

Affected Systems

The affected product is the better‑auth/stripe package. Versions 1.4.11 through 1.6.20 inclusive, and the pre‑release series 1.7.0‑beta.0 through 1.7.0‑beta.9 are vulnerable. Affected users of these releases operate in a shared multi‑organization context where at least one authenticated member can target the subscription endpoints of organizations they should not manage.

Risk and Exploitability

With a CVSS score of 7.1 the vulnerability is scored as Moderate‑High severity. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog. The attack requires the user to be authenticated and have membership in both the target organization and the caller’s active organization. The exploit is remotely accessible via the subscription API endpoints, making it readily usable by anyone with valid credentials for a multi‑organization account. Based on the description, the likely attack vector is authentication‑based remote exploitation through the exposed subscription actions.

Generated by OpenCVE AI on August 3, 2026 at 09:35 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade @better-auth/stripe to version 1.6.21 or later, or to release 1.7.0‑beta.10 or higher
  • Implement server‑side validation that confirms the organization ID present in the request body matches the caller’s active organization before performing any subscription action
  • Restrict subscription‑related endpoints to users with explicit administrative privileges or organizational manager roles, rejecting any requests from users lacking those roles

Generated by OpenCVE AI on August 3, 2026 at 09:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 03 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Sun, 02 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Better-auth
Better-auth stripe
Vendors & Products Better-auth
Better-auth stripe

Sat, 01 Aug 2026 12:45:00 +0000

Type Values Removed Values Added
Description @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.
Title @better-auth/stripe before 1.6.21 Authorization Bypass via Organization Subscription
Weaknesses CWE-639
References
Metrics cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N'}

cvssV4_0

{'score': 7.1, 'vector': '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'}


Subscriptions

Better-auth Stripe
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-03T18:23:06.596Z

Reserved: 2026-07-29T13:07:47.015Z

Link: CVE-2026-67329

cve-icon Vulnrichment

Updated: 2026-08-03T18:20:12.924Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T09:45:04Z

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key