Description
Better Auth is an authentication and authorization library for TypeScript. Prior to 1.6.11, and in 1.6.14 and later when invitation IDs can be obtained outside the invited mailbox and requireEmailVerificationOnInvitation: true is not enabled, the organization plugin's acceptInvitation, rejectInvitation, getInvitation, and listUserInvitations recipient endpoints use session.user.email and an invitation ID without sufficient verified-email ownership proof, allowing a user with an unverified session for the invited email address to accept an organization invitation after obtaining the invitation ID. This issue is fixed for the original default behavior in version 1.6.11, while 1.6.14 restored compatibility for built-in opaque invitation IDs and leaves affected configurations requiring secure options.
Published: 2026-07-15
Score: 7.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A flaw in the Better Auth library’s organization plugin permits a user who has a session authenticated with the invited email address—yet whose email has not been verified—to accept an organization invitation. The vulnerable endpoints (acceptInvitation, rejectInvitation, getInvitation, and listUserInvitations) accept the session’s user.email together with an invitation ID but fail to enforce verified‑email ownership proof when the configuration option requireEmailVerificationOnInvitation is false and invitation IDs can be obtained outside the invited mailbox. Consequently, an attacker who obtains a valid invitation ID can call these endpoints with an unverified session and have the invitation accepted, granting the attacker unauthorized access to the organization. This issue was fixed in v1.6.11, restoring the default behavior; v1.6.14 reintroduced compatibility for opaque invitation IDs but left configurations requiring secure options.

Affected Systems

The issue affects the Better Auth library for TypeScript. Any deployment using a version prior to 1.6.11, or 1.6.14 and later when invitation IDs can be obtained outside the invited mailbox and requireEmailVerificationOnInvitation is not enabled, is vulnerable. Updating to v1.6.11 or later with the default configuration resolves the problem; alternatively, enabling strict email verification or restricting external access to invitation IDs mitigates the risk.

Risk and Exploitability

The CVSS score of 7.7 indicates a high severity, while an EPSS score of less than 1% suggests that it is not listed in the CISA KEV catalog. The likely attack vector is remote, requiring the attacker to first obtain a valid invitation ID and to create or hijack a session for the invited email address that has not completed verification. Once those prerequisites are met, the attacker can invoke the vulnerable endpoints to accept the invitation and gain unauthorized access to the organization’s data.

Generated by OpenCVE AI on July 31, 2026 at 03:09 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Better Auth to v1.6.11 or later to restore the default protection against unverified email acceptance
  • Enable requireEmailVerificationOnInvitation=true in the configuration and ensure it is not disabled when invitation IDs are exposed externally
  • Add an explicit check that the session’s email is verified and matches the invitation email before processing the acceptInvitation request, or restrict the endpoint to trusted administrators only

Generated by OpenCVE AI on July 31, 2026 at 03:09 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-fmh4-wcc4-5jm3 Better Auth vulnerable to unauthorized invitation acceptance via unverified email match in organization plugin
History

Sat, 18 Jul 2026 02:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Wed, 15 Jul 2026 22:30:00 +0000

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

Wed, 15 Jul 2026 18:00:00 +0000

Type Values Removed Values Added
Description Better Auth is an authentication and authorization library for TypeScript. Prior to 1.6.11, and in 1.6.14 and later when invitation IDs can be obtained outside the invited mailbox and requireEmailVerificationOnInvitation: true is not enabled, the organization plugin's acceptInvitation, rejectInvitation, getInvitation, and listUserInvitations recipient endpoints use session.user.email and an invitation ID without sufficient verified-email ownership proof, allowing a user with an unverified session for the invited email address to accept an organization invitation after obtaining the invitation ID. This issue is fixed for the original default behavior in version 1.6.11, while 1.6.14 restored compatibility for built-in opaque invitation IDs and leaves affected configurations requiring secure options.
Title Better Auth: Unauthorized invitation acceptance via unverified email match in organization plugin
Weaknesses CWE-287
CWE-345
CWE-441
CWE-862
References
Metrics cvssV3_1

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


Subscriptions

Better-auth Better Auth
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-18T01:13:02.175Z

Reserved: 2026-06-09T17:30:33.456Z

Link: CVE-2026-53514

cve-icon Vulnrichment

Updated: 2026-07-18T01:12:57.232Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T03:15:04Z

Weaknesses
  • CWE-287

    Improper Authentication

  • CWE-345

    Insufficient Verification of Data Authenticity

  • CWE-441

    Unintended Proxy or Intermediary ('Confused Deputy')

  • CWE-862

    Missing Authorization