CVE-2026-75833

Grav API Plugin Open Redirect via Backslash Bypass

Published Aug 18, 2026 CVSS 4.0 · 8.6 High EPSS < 1% KEV · Not listed
Description
The Grav API plugin (getgrav/grav-plugin-api, bundled with Grav 2.0's admin-next/API stack) before version 1.0.14 contains an open redirect weakness in SsoController::sanitizeReturnTo(). The function rejects a literal '//' prefix but does not account for browsers normalizing backslashes to slashes in special (http/https) schemes, so a returnTo value such as '/\evil.com' passes the guard and is later resolved by the browser as the protocol-relative URL '//evil.com'. Following a legitimate OAuth login flow, an attacker-supplied returnTo parameter could redirect an authenticated victim to an attacker-controlled site for post-login phishing. Full browser-side exploitability depends on the admin-next SPA's client-side oauth-callback handler and was not independently verified by the reporter.

Analysis

AI-generated

Technical impact

The Grav API plugin is vulnerable to an open redirect flaw introduced by a sanitization bypass. The SsoController::sanitizeReturnTo() routine rejects a literal ‘//’ prefix but fails to account for browsers mapping backslashes into forward slashes in HTTP and HTTPS URLs. Consequently a returnTo value such as ‘/\evil.com’ is accepted, and when the browser resolves it becomes the protocol‑relative URL ‘//evil.com’. This flaw can be triggered after a legitimate OAuth login flow, allowing an attacker known returnTo parameter to redirect an authenticated user to a malicious site for post‑login phishing. The vulnerability is therefore an instance of CWE‑601 – open redirect— and poses a loss of user trust and potential credential theft if a user follows the malicious link.

Affected Systems

The affected vendor is Grav (getgrav), specifically the Grav API plugin bundled with Grav 2.0’s admin‑next/API stack. All releases before version 1.0.14 contain the flaw; the CPE identifier is cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*, indicating that the entire Grav package is impacted until the 1.0.14 update is applied.

Risk and Exploitability

The CVSS score of 8.6 indicates a high‑severity vulnerability, but the EPSS score is currently unavailable, so the immediate likelihood of exploitation is unclear. The issue is not listed in the CISA KEV catalog. Exploitability requires the victim to authenticate via the normal OAuth flow and then be redirected by the app’s client‑side oauth‑callback handler, so the attack is browser‑centric and relies on the user interacting with the redirect. Attackers can craft a malicious returnTo value that bypasses the server‑side guard, causing browsers to navigate to an attacker‑controlled domain after login. Because the exploitation is driven entirely by client processing, it is readily reproducible without privileged access to the server.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Grav to the Grav API plugin v1.0.14 or newer, which removes the bypass in sanitizeReturnTo().
  • If an upgrade cannot be performed immediately, disable the OAuth redirect feature or block the /api/auth/token endpoint until the fix is applied.
  • As a temporary mitigator, enforce strict validation of returnTo URLs: reject any values that contain backslashes, require a leading slash for relative paths, and whitelist only known safe domain names to prevent protocol‑relative redirects.

Generated by OpenCVE AI on August 18, 2026 at 12:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description The Grav API plugin (getgrav/grav-plugin-api, bundled with Grav 2.0's admin-next/API stack) before version 1.0.14 contains an open redirect weakness in SsoController::sanitizeReturnTo(). The function rejects a literal '//' prefix but does not account for browsers normalizing backslashes to slashes in special (http/https) schemes, so a returnTo value such as '/\evil.com' passes the guard and is later resolved by the browser as the protocol-relative URL '//evil.com'. Following a legitimate OAuth login flow, an attacker-supplied returnTo parameter could redirect an authenticated victim to an attacker-controlled site for post-login phishing. Full browser-side exploitability depends on the admin-next SPA's client-side oauth-callback handler and was not independently verified by the reporter.
Title Grav API Plugin Open Redirect via Backslash Bypass
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-601
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

{'score': 4.2, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N'}

cvssV4_0

{'score': 8.6, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}

Weaknesses
  • CWE-601

    URL Redirection to Untrusted Site ('Open Redirect')

Sources

Status
PUBLISHED
Assigner
VulnCheck
Published
Updated
Aug 18, 2026, 1:42 PM
Reserved
Aug 18, 2026, 10:57 AM
Status
Deferred
Published
Aug 18, 2026, 12:19 PM
Modified
Oct 22, 2026, 10:10 PM