Skip to content
OpenAdvisories

Vendor

getgrav

213 known vulnerabilities.

213 results · Feed

  • Medium 4.6

    Grav API Plugin: Stored XSS via SVG Upload - API Media Pipeline Bypasses Sanitizer

    Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.2, the Grav API plugin POST /api/v1/media pipeline in HandlesMediaUploads::processUploadedFile() validates an SVG filename extension but does…

  • Medium 5.3

    Grav: Unauthenticated open redirect via login twofa_cancel _redirect

    Grav is a file-based Web platform. Prior to 3.8.5, the Login plugin twofa_cancel task accepts a client-controlled _redirect field without a nonce and allows an unauthenticated request to set an external http, https, or protocol-relative Location target. Contr…

  • Critical 9.1

    Grav before 2.0.14 Privilege Escalation via Group Access Field

    Grav before 2.0.14 fails to guard the access field in the core group blueprint with the required security@: admin.super restriction. A delegated admin.users operator can save a group with access[admin][super]=true to escalate to super-admin, gaining scheduler…

  • High 8.8

    Grav API Plugin before 1.0.14 Missing Authorization

    The Grav API plugin (getgrav/grav-plugin-api, bundled with Grav's admin-next/API stack) before 1.0.14 fails to enforce the authorize requirement in MenubarController::executeAction(). While the GET /menubar/items listing endpoint correctly filters menubar ite…

  • Medium 4.3

    Grav API Plugin before 1.0.14 Missing Authorization

    Grav API plugin (getgrav/grav-plugin-api) before 1.0.14 contains a missing authorization vulnerability in userPassesAuthorize() (AbstractApiController.php). The function fails to consult the calling request's API key scopes, relying instead on the account's r…

  • Medium 5.4

    Grav before 2.0.14 Stored XSS via Invalid UTF-8 Byte

    Grav before 2.0.14 contains a stored cross-site scripting vulnerability in the Security::detectXss() function (system/src/Grav/Common/Security.php). All XSS detection patterns use the PCRE /u (UTF-8) modifier, so a single invalid UTF-8 byte anywhere in page c…

  • Medium 4.2

    Grav API Plugin Open Redirect via Backslash Bypass

    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 brow…

  • Medium 4.3

    Grav API Plugin before 1.0.14 Authorization Bypass

    The Grav API plugin (getgrav/grav-plugin-api, bundled with Grav 2.0) before version 1.0.14 (fixed in 1.0.15) contains a missing authorization vulnerability in BlueprintPathResolver::resolveUserScope(). The method gates the users/<name> scope on the account's …

  • High 7.6

    Grav before 2.0.15 Stored XSS via audio/video source URL

    Grav before 2.0.15 contains a stored cross-site scripting vulnerability in the audio and video media rendering through the sourceParsedownElement method. The media URL fragment is concatenated unescaped into rawHtml source elements, allowing attackers to inje…

  • High 7.1

    grav-plugin-api before 1.0.15 Path Traversal via batchCopy

    grav-plugin-api (getgrav/grav-plugin-api) versions >= 1.0.0-beta.10 and <= 1.0.14 contain a path traversal vulnerability in the PagesController::batchCopy() method. An incomplete fix for GHSA-qjq4-jp55-4mx2 left the user-controlled 'suffix' parameter (via POS…

  • High 8.7

    Grav before 2.0.15 Stored XSS via detectXss() Quote Bypass

    Grav before 2.0.15 contains a stored cross-site scripting vulnerability in the detectXss() function where unpaired quotes in unquoted attribute values bypass event-handler detection. Authenticated editors can inject event handlers like onerror= that pass vali…

  • High 8.1

    grav-plugin-api before 1.0.15 Twig SSTI via translate endpoint

    grav-plugin-api versions before 1.0.15 fail to validate Twig content in the translate() endpoint, allowing attackers with api.pages.write permission to persist pages with process.twig enabled. Attackers can submit crafted header and content parameters to exec…

  • High 8.8
    CVE-2026-75827 Public exploit

    Grav before 2.0.15 Arbitrary File Write via error_log

    Grav before 2.0.15 contains an arbitrary file write vulnerability in the Blueprint dynamic-data bare-function validation that uses an incomplete denylist instead of a positive allowlist. Attackers with page-edit or blueprint-config access can invoke the error…

  • Medium 5.4

    Grav Form Plugin before 9.1.19 Stored XSS via Field Properties

    Grav Form Plugin before 9.1.19 fails to escape field-definition properties including prepend, append, spacer text, section text, and select option labels in form templates. Attackers with form authoring privileges can inject arbitrary HTML and JavaScript that…

  • Medium 4.6

    Grav plugin-api before 1.0.15 Script Injection via SVG

    Grav plugin-api before 1.0.15 contains a script injection vulnerability where the SVG sanitizer only checks for the exact extension 'svg', allowing .svgz and .xhtml files to bypass sanitization and be stored unsanitized. Attackers with api.media.write permiss…

  • Medium 5.9

    Grav before 2.0.15 Path Traversal via plugin-asset-map.php

    Grav before 2.0.15 contains a path traversal vulnerability in the static asset server within index.php that uses string prefix matching instead of directory-boundary validation. Unauthenticated attackers can access files in sibling directories by exploiting d…

  • High 8.8

    Grav 1.0.6 through 1.0.11 Privilege Escalation via Scoped API Keys

    The Grav API plugin (getgrav/grav-plugin-api) versions >= 1.0.6 and <= 1.0.11 contain a privilege escalation vulnerability. A scoped API key minted on a super-admin account bypasses its declared scope cap on four isSuperAdmin()-gated write endpoints (in Group…

  • Medium 5.4

    Grav before 2.0.13 Stored XSS via quoted-attribute bypass

    Grav versions from 1.5.2 through 2.0.12 contain a stored cross-site scripting vulnerability in the Security::detectXss() function (system/src/Grav/Common/Security.php). The event-handler scan is anchored at `<` and uses `[^>]*?`, which cannot cross the first …

  • High 8.8

    Grav API Plugin before 1.0.13 RCE via ConfigController scope bypass

    Grav API plugin versions before 1.0.13 fail to enforce API key scope caps in ConfigController super-scope gates, allowing scoped keys to write scheduler configuration. The scope cap is applied only inside requirePermission(), while the scheduler and backups g…

  • High 8.8

    Grav through 2.0.11 Authentication Bypass via Flex Objects

    The Flex Objects plugin (through 1.4.6, tested with Grav 2.0.11) contains an incorrect authorization vulnerability in its Flex Objects API. FlexApiController::update() checks only the general Flex directory permission and does not apply the additional target/…

  • High 8.8

    Grav before 1.0.13 API Key Scope Bypass via UsersController

    The Grav API plugin (getgrav/grav-plugin-api) before 1.0.13 contains an API-key scope-cap bypass in UsersController's create() and update() methods. These methods enforce the scope cap only for api.users.write, but gate super-privilege grants on a bare isSupe…

  • High 7.2

    Grav before 1.0.13 API Key Scope Bypass via InvitationsController

    Grav Plugin API (getgrav/grav-plugin-api) before 1.0.13 fails to enforce API-key scope caps in InvitationsController. The strip-super and accept-groups decisions are gated on a bare isSuperAdmin() check rather than a scope-aware permission check, so a least-p…

  • High 8.8

    Grav CMS before 2.0.13 Remote Code Execution via Twig

    Grav CMS before 2.0.13 contains a server-side template injection vulnerability in email-action parameters that allows low-privileged page editors to execute arbitrary operating-system commands. Attackers can inject Twig payloads using the unsandboxed find fil…

  • High 8.8

    Grav API Plugin before 1.0.13 Scope Bypass via createApiKey

    The getgrav/grav-plugin-api plugin before 1.0.13 fails to validate that the scopes of a newly created API key are a subset of the caller's scopes in createApiKey. The self-target path of requireApiKeyPermission() requires only the baseline api.access scope, a…

  • High 8.8

    Grav before 1.0.13 API Key Scope Bypass via PagesController

    The Grav API plugin (getgrav/grav-plugin-api) before 1.0.13 contains an API key scope-cap bypass in PagesController::guardTwigContent(). The Twig-toggle check uses a bare isSuperAdmin() gate that does not consult api_key_scopes, so a least-privilege API key s…

  • High 7.6

    Grav API Plugin before 1.0.13 API-key scope cap bypass via ReportsController

    The getgrav/grav-plugin-api plugin before 1.0.13 contains an API-key scope cap bypass in the POST /reports/twig-content/allowlist endpoint (ReportsController). The endpoint enforces requirePermission('api.config.write') followed by a bare isSuperAdmin() check…

  • Medium 5.4

    Grav before 1.0.13 API-key scope cap bypass via DemoController

    The Grav API plugin (getgrav/grav-plugin-api) before 1.0.13 contains an API-key scope cap bypass in DemoController. Its private requireSuper() method checks isSuperAdmin() and returns early before invoking requirePermission(), so the api_key_scopes cap (enfor…

  • High 8.8

    Grav before 1.0.13 Authentication Bypass via disable2fa

    The getgrav/grav-plugin-api Composer package before 1.0.13 (affected <= 1.0.12) fails to enforce API key scope caps on the disable2fa endpoint. Unlike the sibling generate2fa endpoint, disable2fa authorizes the admin (non-self) path solely via ACL reads (isSu…

  • Medium 4.9

    Grav 2.0.11 Path Traversal via Backup Profile Configuration

    Grav versions before 2.0.13 fail to properly validate backup profile root paths, allowing attackers to archive directories outside GRAV_ROOT when not in the hard-coded deny-list. Attackers with profile editor access can configure backup profiles with traversa…

  • Medium 5.4

    Grav Form Plugin before 9.1.15 Stored XSS via Radio Toggle

    Grav Form plugin versions before 9.1.15 contain a stored cross-site scripting vulnerability in radio and toggle field option labels rendered with the Twig |raw filter. Attackers with form authoring permissions can inject HTML and script payloads in option lab…

  • High 8.8

    Grav CMS before 2.0.13 Remote Code Execution via ZIP Upload

    Grav CMS before 2.0.13 contains a remote code execution vulnerability in the Flex Objects plugin settings validation that allows authenticated users to execute arbitrary code by uploading a ZIP file containing PHP code. Attackers can bypass routine name valid…

  • High 7.5

    Grav CMS before 2.0.11 Path Traversal via watermark

    Grav CMS 2.0.10 contains a path traversal vulnerability in ImageMedium::watermark(), which passes its unsanitized $image argument to RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator::findResource(). Because the file:// scheme branch only lexically c…

  • High 8.1

    Grav CMS 2.0.7 through 2.0.10 Arbitrary Method Invocation via Blueprint

    Grav CMS versions 2.0.7 through 2.0.10 fail to validate fully-qualified static method calls (Class::method) in blueprint dynamic-field directives because Blueprint::isSafeDynamicCall() only applies its dangerous-callable denylist to strings that do not contai…

  • Medium 6.5

    Grav Form Plugin before 9.1.13 Open Redirect via form.value() Twig

    The Grav form plugin (getgrav/grav-plugin-form) before 9.1.13 contains an open redirect vulnerability. Since v9.1.11, the redirect process action evaluates user-supplied form data inside Twig expressions, and Grav::redirect() accepts external URLs without ori…

  • Medium 4.8

    Grav Login Plugin before 3.8.13 Insufficient Session Expiration

    Grav Login Plugin versions before 3.8.13 contain an insufficient session expiration vulnerability in TokenStorage.php where the findTriplet() method fails to properly validate Remember Me token timestamps. Attackers with a captured Remember Me cookie can auth…

  • High 8.8

    Grav API Plugin 1.0.9 Privilege Escalation via Invitations groups

    Grav API Plugin versions before 1.0.10 fail to validate the groups field in InvitationsController::create(), allowing authenticated api.users.write callers to assign invited accounts to groups that grant api.super permissions. Attackers can create invitation …

  • High 7.1

    Grav API Plugin before 1.0.10 Path Traversal via move

    Grav API Plugin (Composer package getgrav/grav-plugin-api) before 1.0.10 fails to properly validate the slug field in the POST /pages/{route}/move endpoint. PagesController::move() sanitizes the slug only with ltrim($body['slug'], '.'), which strips leading p…

  • High 8.5

    Grav API Plugin before 1.0.10 Broken Access Control

    Grav API Plugin versions before 1.0.10 fail to restrict write access to security-critical plugin configuration scopes, allowing authenticated users with api.config.write privilege to modify rate limiting and CORS settings. Attackers can disable rate limiting …

  • High 8.8

    Grav before 2.0.9 Remote Code Execution via FlexDirectory

    Grav versions >= 1.7.0 and before 2.0.9 contain a remote code execution vulnerability. FlexDirectory::dynamicDataField() resolves blueprint data-*@: directives by calling call_user_func_array() on attacker-influenced input, validating only that the target is …

  • High 8.8

    Grav Login Plugin 3.8.11 Privilege Escalation via Profile Update

    The Grav Login plugin (grav-plugin-login) versions <= 3.8.11 contain a privilege escalation flaw in the authenticated profile self-update handler (processUserProfile(), the update_user task). Unlike the registration handler, this handler does not strip privil…