Vulnerability DatabaseGHSA-6244-vvv9-76f5

GHSA-6244-vvv9-76f5: 
JavaScript vulnerability analysis and mitigation

Summary

GHSA-62xf-qq8f-x6w9 enforced Better Auth admin bans at the engine boundary and in the provider port: session resolution, server-side mints, API-key verification, get-session and the other Better Auth endpoints. The plugin's Payload-side gate, applyAccountControls in collections.js, is what governs users principals authenticated by other strategies. It refuses suspension (suspendedUntil) and provider-owned local credentials, but it never looks at the ban: neither plugin/dist nor core/dist references banned or banExpires. Any users principal that reaches Payload without going through the provider is therefore unaffected by a ban. Examples:

  • @payloadcms/plugin-mcp keys: resolveAccessSettings sets req.user to the key owner's users document with collection: 'users' and _strategy: 'mcp-api-key'.
  • Payload's own useAPIKey keys and local JWTs, on hosts that keep those strategies (break-glass operators). The same account suspended instead of banned is refused on these paths, so this is a parity gap between the two lockout mechanisms.

Impact

An admin who bans a user expects every credential of that user to stop working. A banned user's MCP API key, or a Payload API key or JWT on a host that allows them, keeps full access to whatever those credentials authorize, until the key is separately revoked.

Suggested fix

  1. In requestAccountStatus / applyAccountControls, read the ban state (banned + banExpires, the same activeBanOf rule the provider uses) alongside suspendedUntil, and refuse an active ban exactly like a suspension, for every users principal regardless of _strategy.
  2. Add regression tests: a banned owner's request through a non-provider strategy (an MCP-style principal, a Payload API key, a local JWT) is refused on read, update, delete, admin and readVersions; the same account with an expired ban is allowed.
  3. Optionally have the doctor note that bans and suspensions both apply to non-provider credentials only from this version on. Versions: plugin 0.18.2, provider-better-auth 0.14.2, @payloadcms/plugin-mcp 3.91.0, Payload 3.91.

Source: NVD

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-966w-4vpf-p7hcHIGH7.1
  • JavaScript logoJavaScript
  • @aloma.io/aloma
NoYesOct 25, 2026
GHSA-mrwp-f3q8-3g9pMEDIUM5.9
  • JavaScript logoJavaScript
  • follow-redirects
NoYesOct 25, 2026
GHSA-hfm3-x63j-7fxpHIGHN/A
  • JavaScript logoJavaScript
  • @payload-auth-link/migrate
NoYesOct 25, 2026
GHSA-6244-vvv9-76f5MEDIUMN/A
  • JavaScript logoJavaScript
  • @payload-auth-link/plugin
NoYesOct 25, 2026
GHSA-q53q-qg98-p9jfHIGHN/A
  • JavaScript logoJavaScript
  • llm-fw
NoYesOct 25, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management