/

CVE-2026-104416

Severity:

HIGH RISK

(7.5)

Information Disclosure (CWE-203) in Ghost Admin API

CVE-2026-104416

Deferred

Vulnerability type

Category:

Information Disclosure

CWE:

CWE-203

Impact:

Sensitive Token Disclosure and Privilege Escalation

Severity:

HIGH RISK

(7.5)

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

Ghost contains an information disclosure vulnerability in the Admin API that can expose secret tokens associated with pending staff invitations. A staff user with permission to view invitations may use those tokens to accept an invitation for a more privileged role, potentially escalating privileges.

Affected context

The issue occurs in Ghost deployments where the Admin API exposes details of pending staff invitations to authorized staff users. Risk is higher when a staff member can view invitations but should not be able to access invitation secrets or accept invitations intended for higher-privileged roles.

Exploit preconditions

  • Attack surface: Ghost Admin API invitation-management functionality
  • Required access: An authenticated staff account with permission to view pending invitations
  • Trigger point: Retrieval and subsequent use of secret data associated with a pending invitation
  • Why exploitation is possible: The API response may disclose invitation tokens without sufficiently limiting their visibility or binding their use to the intended recipient and role

Why this happens

The vulnerability reflects insufficient control over sensitive information returned by an administrative API. Secret invitation tokens are exposed to a staff role that can view pending invitations, creating an authorization and information-disclosure boundary failure. This maps to CWE-203, Observable Discrepancy, because differences in exposed response data can reveal security-sensitive information that should not be observable to the requesting user.

Potential impact

  • A staff user may obtain secret tokens for pending invitations
  • An attacker with the required staff access could accept an invitation for a higher-privileged role
  • Account or administrative privileges could be escalated
  • The integrity and confidentiality of Ghost content and administration could be affected

General mitigation guidance

Mitigation generally focuses on minimizing sensitive data exposure and

enforcing authorization at every invitation lifecycle operation.

Common defensive patterns include:

  • Returning only the minimum invitation metadata needed for the requesting role
  • Never exposing invitation secrets through general invitation-listing endpoints
  • Binding invitation tokens to the intended recipient, role, and lifecycle state
  • Requiring explicit authorization checks when invitations are viewed or accepted
  • Applying least privilege to staff roles and separating invitation administration from general staff access
  • Auditing invitation access, acceptance, role changes, and anomalous privilege transitions

How teams detect issues like this

Detection approaches may include:

  • Static analysis and API reviews that identify secrets included in administrative list or detail responses
  • Code review checks for authorization decisions based only on broad staff permissions
  • Tests verifying that lower-privileged staff cannot observe or use higher-privileged invitation secrets
  • Monitoring for unusual invitation acceptance, role assignment, or privilege changes
  • Policy enforcement that classifies invitation tokens as secrets and prohibits their exposure in logs, responses, and telemetry
  • Neutral automated security review tools that flag excessive data exposure and authorization gaps

Sources

SourceLink
github.comgithub.com/TryGhost/Ghost/security/advisories/GHSA-v6q3-xqxm-6f5v
vulncheck.comvulncheck.com/advisories/ghost-4.39.0-before-6.64.0-invite-token-disclosure-via-admin-api

Frequently asked

questions

It may be exploitable through the Admin API by an authenticated staff user who

has permission to view pending invitations. It does not generally represent

unauthenticated access.

The attacker typically needs a valid staff account with invitation-viewing

permission. The exact scope depends on how roles and Admin API permissions are

configured.

Do not return secret invitation tokens to users who only need to view invitation

metadata. Enforce recipient- and role-aware authorization when invitations are

viewed or accepted.

Apply data minimization to API responses, classify tokens as secrets, test

authorization boundaries for every role, and monitor invitation and privilege

changes for unexpected activity.

Find out what's already
exploitable in your codebase.