/

CVE-2026-95654

Severity:

HIGH RISK

(7.4)

Authorization Bypass (CWE-863) in Databasement Invites

CVE-2026-95654

Deferred

Vulnerability type

Category:

Authorization Bypass

CWE:

CWE-863

Impact:

Account Takeover and Secret Exposure

Severity:

HIGH RISK

(7.4)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Databasement before 1.7.14 can retain an invitation authorization decision after validating a token on page load, without rechecking it when the invitation is accepted. An attacker with a leaked or forwarded invitation link may use this stale authorization state to overwrite an account password and gain authenticated access to managed database credentials and secrets.

Affected context

The vulnerability occurs in invitation workflows where:

  • An invitation token is checked when the acceptance page is loaded
  • The authorization result is cached or otherwise reused
  • Token validity is not revalidated at the final acceptance action
  • A token may be leaked, forwarded, or remain usable after the legitimate recipient accepts it

Databasement deployments using affected invitation handling may be exposed when acceptance state can persist across these workflow transitions.

Exploit preconditions

  • Attack surface: Invitation acceptance workflow
  • Required access: Possession of a leaked, forwarded, or otherwise disclosed invitation link
  • Trigger point: Final invitation acceptance after the legitimate user has already completed acceptance
  • Why exploitation is possible: The application relies on an earlier authorization decision instead of verifying the token's current validity at the state-changing action

Why this happens

The underlying flaw is an authorization state-validation failure. The application validates an invitation token during page rendering, then permits a later state-changing operation based on that earlier decision without confirming that the token is still valid, unused, and associated with the intended acceptance context.

This maps to CWE-863: Incorrect Authorization, because access to the password-setting and account-activation operation is granted using stale authorization state rather than a current authorization check.

Potential impact

  • An attacker may overwrite an account password
  • An attacker could gain authenticated access to the affected account
  • Managed database credentials and application secrets may be exposed
  • Account ownership and invitation integrity could be compromised
  • An attacker may use the compromised account for further unauthorized activity

General mitigation guidance

Mitigation generally focuses on making authorization decisions at the exact state-changing operation and treating invitation tokens as single-use capabilities.

Common defensive patterns include:

  • Revalidating token integrity, expiry, status, audience, and intended recipient during acceptance
  • Atomically consuming invitation tokens so they cannot be accepted more than once
  • Avoiding authorization decisions cached solely from page-load state
  • Binding acceptance actions to the authenticated user and intended invitation context
  • Requiring explicit identity verification for sensitive password or account changes
  • Limiting account and secret access through least-privilege permissions
  • Invalidating related sessions, tokens, and recovery paths after account ownership changes

How teams detect issues like this

Organizations can identify similar issues through:

  • Static analysis and code review checks for authorization performed only during page rendering
  • Review of invitation, password-reset, and account-claim workflows for missing checks at state-changing endpoints
  • Tests that attempt token reuse, delayed acceptance, concurrent acceptance, and acceptance by a different user
  • Monitoring for repeated invitation acceptance attempts and password changes following token use
  • Policy enforcement requiring server-side, transactional validation for one-time capabilities

Automated application security testing can help detect discrepancies between page-load authorization and final-action authorization.

Sources

SourceLink
github.comgithub.com/David-Crty/databasement
github.comgithub.com/David-Crty/databasement/blob/v1.7.13/app/Livewire/Auth/AcceptInvitation.php#L30
github.comgithub.com/David-Crty/databasement/blob/v1.7.13/app/Livewire/Auth/AcceptInvitation.php#L45
github.comgithub.com/David-Crty/databasement/commit/128efeaf6bc9ad4a63940f4c3030a56ab2969778
github.comgithub.com/David-Crty/databasement/releases/tag/v1.7.14
vulncheck.comvulncheck.com/advisories/databasement-before-1.7.14-authorization-bypass-via-stale-invitation-token

Frequently asked

questions

Yes. Possession of a leaked or forwarded link may be sufficient when the legitimate invitation has already been accepted but the application continues to trust a stale authorization decision.

Not necessarily. The key requirement is access to a usable invitation link and the ability to reach the acceptance workflow; other deployment-specific controls may affect the practical scope.

Revalidate and atomically consume the invitation token at the final acceptance action, rather than relying on validation performed when the page initially loads.

Treat every state-changing request as requiring a fresh server-side authorization check, enforce single-use token semantics, and test workflows involving reuse, expiration, concurrency, and identity mismatch.

Find out what's already
exploitable in your codebase.