highCVSS 8.3Vulnerability

GHSA-j8v8-g9cx-5qf4

### Am I affected? Users are affected if all of these hold: - They install and register the `@better-auth/scim` plugin (`plugins: [scim()]`). - They create SCIM providers without an `organizationId`, that is, non-organization ("personal") providers. Organization-scoped providers are not affected because they enforce organization membership and role. - Their application's deployment has more than one authenticated user, so one account can target another user's provider. - They have not set `providerOwnership: { enabled: true }`. The SCIM management endpoints first shipped in `1.5.0`, so every stable release from `1.5.0` onward is affected, and the stable line is not patched. On the pre-release line, builds through `1.7.0-beta.3` are affected, and `1.7.0-beta.4` carries the fix. Fix: 1. Upgrade to `@better-auth/[email protected]` (then `1.7.0`). This is a breaking change: it removes the `providerOwnership` option, makes owner binding mandatory, and adds a permanent `scimProvider.userId` column. 2. Run the schema migration after upgrading (`npx auth migrate`). Connections created before the upgrade carry no owner and become unreachable through the management endpoints, so reclaim them at the database level. 3. The `1.6.x` stable line is not patched. If developers stay on it, apply the workaround below. ### Summary `@better-auth/scim` does not bind non-organization SCIM providers to their creator in the default configuration. Any authenticated user can manage another user's non-org provider, including reading its metadata, listing connections, regenerating its SCIM bearer token, and deleting the connection. Regenerating the token rotates it: the legitimate token stops working and the attacker holds a valid one. ### Details The plugin tracks provider ownership through an opt-in `providerOwnership` option and a `scimProvider.userId` column. Both default to off. When ownership is disabled, a non-org provider row is created without a `userId`, and the management ac

Properties

ghsa_id
GHSA-j8v8-g9cx-5qf4
summary
@better-auth/scim: Account/provider takeover via missing owner binding on non-org SCIM providers
severity
high
cvss_score
8.3
cve_id
GHSA-j8v8-g9cx-5qf4
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
is_ghsa_only
true
ghsa_published
2026-07-07T20:57:05Z
source_url
https://github.com/advisories/GHSA-j8v8-g9cx-5qf4
ghsa_updated
2026-07-07T20:57:06Z

Related Entities (5)

HAS_WEAKNESS (2)

[Weakness]Missing Authorization
[Weakness]Authorization Bypass Through User-Controlled Key

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]npm/@better-auth/scim

AFFECTS (1)

[Software]npm/@better-auth/scim

Explore deeper with Ninja Signal's threat intelligence graph