/

CVE-2026-114658

Severity:

HIGH RISK

(8.8)

Improper Authorization (CWE-269) in Grav Login Plugin

CVE-2026-114658

Deferred

Vulnerability type

Category:

Improper Authorization

CWE:

CWE-269

Impact:

Privilege Escalation and Full Site Account Takeover

Severity:

HIGH RISK

(8.8)

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

A missing authorization check in the Grav Login plugin's login.invite task may allow an unauthenticated user to create an invitation that grants super-user privileges. The issue becomes risky when page authors can define invitation settings in frontmatter and the invitation workflow accepts those settings without enforcing server-side privilege restrictions.

A missing authorization check in the Grav Login plugin's login.invite task may allow an unauthenticated user to create an invitation that grants super-user privileges. The issue becomes risky when page authors can define invitation settings in frontmatter and the invitation workflow accepts those settings without enforcing server-side privilege restrictions.

Affected context

The vulnerability occurs in Grav deployments using the Login plugin's invitation functionality. It requires a page or content authoring context in which invitation form settings can be defined through frontmatter, combined with an invitation endpoint that does not independently authorize or constrain the requested privilege level. Systems that expose the relevant task to unauthenticated requests may have a broader attack surface.

The vulnerability occurs in Grav deployments using the Login plugin's invitation functionality. It requires a page or content authoring context in which invitation form settings can be defined through frontmatter, combined with an invitation endpoint that does not independently authorize or constrain the requested privilege level. Systems that expose the relevant task to unauthenticated requests may have a broader attack surface.

Exploit preconditions

  • Attack surface: The Grav Login plugin's login.invite task and associated invitation form
  • Required access: Ability to influence page frontmatter or invitation form configuration; the submission itself may be unauthenticated
  • Trigger point: Processing an invitation request that requests or assigns super-user access
  • Why exploitation is possible: The task does not adequately verify authorization or constrain privilege assignment before registering the invited account
  • Attack surface: The Grav Login plugin's login.invite task and associated invitation form
  • Required access: Ability to influence page frontmatter or invitation form configuration; the submission itself may be unauthenticated
  • Trigger point: Processing an invitation request that requests or assigns super-user access
  • Why exploitation is possible: The task does not adequately verify authorization or constrain privilege assignment before registering the invited account

Why this happens

The underlying bug is a missing authorization check in a privileged account-management workflow. User-controlled or author-controlled invitation settings are trusted to determine an account's privilege level without enforcing server-side policy for administrative roles. This maps to CWE-269: Improper Privilege Management, because the application can grant authority beyond what the initiating actor should be permitted to assign.

The underlying bug is a missing authorization check in a privileged account-management workflow. User-controlled or author-controlled invitation settings are trusted to determine an account's privilege level without enforcing server-side policy for administrative roles. This maps to CWE-269: Improper Privilege Management, because the application can grant authority beyond what the initiating actor should be permitted to assign.

Potential impact

  • An attacker may create or register a super-user account
  • The attacker could obtain full administrative control of the Grav site
  • Site content, configuration, and user accounts may be modified
  • Sensitive site data could be accessed or altered
  • The compromised site could be used to distribute malicious content or affect downstream users
  • An attacker may create or register a super-user account
  • The attacker could obtain full administrative control of the Grav site
  • Site content, configuration, and user accounts may be modified
  • Sensitive site data could be accessed or altered
  • The compromised site could be used to distribute malicious content or affect downstream users

General mitigation guidance

Mitigation generally focuses on enforcing privilege decisions on the server rather than accepting role or permission values from page configuration or request data.

Defensive patterns include:

  • Requiring explicit authorization checks for invitation creation and privilege assignment
  • Allowing only trusted administrators to invite accounts with elevated roles
  • Applying secure-by-default role selection that cannot produce super-user access
  • Treating frontmatter and form fields as untrusted input
  • Separating account registration from administrative role provisioning
  • Auditing existing invitations, accounts, and role assignments for unexpected privilege grants
  • Running the application with least privilege and limiting administrative capabilities by default

Mitigation generally focuses on enforcing privilege decisions on the server rather than accepting role or permission values from page configuration or request data.

Defensive patterns include:

  • Requiring explicit authorization checks for invitation creation and privilege assignment
  • Allowing only trusted administrators to invite accounts with elevated roles
  • Applying secure-by-default role selection that cannot produce super-user access
  • Treating frontmatter and form fields as untrusted input
  • Separating account registration from administrative role provisioning
  • Auditing existing invitations, accounts, and role assignments for unexpected privilege grants
  • Running the application with least privilege and limiting administrative capabilities by default

How teams detect issues like this

Organizations can look for:

  • Static analysis and code review checks for invitation handlers that assign roles without authorization gates
  • Signals where request parameters or frontmatter directly influence administrative permissions
  • Tests confirming that unauthenticated and low-privilege users cannot create elevated accounts
  • Policy enforcement requiring server-side allowlists for privileged roles
  • Audit-log review for newly created super-user accounts and unusual invitation activity
  • Automated security review tools that flag missing authorization checks in account-management paths

Organizations can look for:

  • Static analysis and code review checks for invitation handlers that assign roles without authorization gates
  • Signals where request parameters or frontmatter directly influence administrative permissions
  • Tests confirming that unauthenticated and low-privilege users cannot create elevated accounts
  • Policy enforcement requiring server-side allowlists for privileged roles
  • Audit-log review for newly created super-user accounts and unusual invitation activity
  • Automated security review tools that flag missing authorization checks in account-management paths

Sources

SourceLink
github.comgithub.com/getgrav/grav/security/advisories/GHSA-j8jx-ccrg-m7h2
vulncheck.comvulncheck.com/advisories/grav-login-plugin-3.6.0-before-3.9.13-privilege-escalation-via-login-invite

Frequently asked

questions

It may be exploitable through the application's invitation workflow when the relevant task is reachable and an attacker can influence the invitation configuration or form definition.

The invitation submission may be unauthenticated, but the ability to define or modify the required page frontmatter depends on the site's authoring permissions and deployment configuration.

Enforce authorization and role restrictions on the server side, ensuring that only explicitly trusted administrators can grant elevated privileges.

Treat all configuration and request-controlled role values as untrusted, use secure-by-default roles, test authorization boundaries, and monitor administrative account creation.

It may be exploitable through the application's invitation workflow when the relevant task is reachable and an attacker can influence the invitation configuration or form definition.

The invitation submission may be unauthenticated, but the ability to define or modify the required page frontmatter depends on the site's authoring permissions and deployment configuration.

Enforce authorization and role restrictions on the server side, ensuring that only explicitly trusted administrators can grant elevated privileges.

Treat all configuration and request-controlled role values as untrusted, use secure-by-default roles, test authorization boundaries, and monitor administrative account creation.

Find out what's already
exploitable in your codebase.