Skip to content
OpenAdvisories

Vendor

getgrav

212 known vulnerabilities.

109 results · Clear filters · Feed

  • High 7.1

    Grav Lightbox Gallery plugin 1.1.0 before 1.3.2 on Grav 2.x calls any medium method named in image, thumb or thumb_opti…

  • High 7.5

    Grav from 1.7.53.3 before 1.7.53.6 Clockwork Profiler Authorization Bypass via Loopback Fallback

    Grav from 1.7.53.3 before 1.7.53.6 contains an authorization bypass in Debugger::isDebuggerRequestAuthorized() that allows unauthenticated visitors to read /__clockwork/ profiler data via a loopback REMOTE_ADDR fallback. Behind a same-host reverse proxy, remo…

  • High 8.8

    Grav 2.0.15 before 2.2.13 Allowlist Bypass via Flex Form Override Directives

    Grav 2.0.15 before 2.2.13 contains an allowlist bypass vulnerability that allows page editors to invoke arbitrary public static methods by relocating data-*@ directives with unset-name@ or integer keys. Attackers with page-edit permission can embed crafted fi…

  • High 8.8

    Grav Login plugin 3.6.0 before 3.9.13 Privilege Escalation via login.invite

    Grav Login plugin from 3.6.0 before 3.9.13 contains a missing authorization vulnerability in the login.invite task that allows page authors to obtain super user accounts. Attackers can define an invitation form granting super access in page frontmatter, submi…

  • High 7.5

    Grav before 1.7.53.5 and 2.2.2 Image Pixel Limit Bypass Denial of Service

    Grav 1.7.53 before 1.7.53.5 and 2.0.0-rc.8 before 2.2.2 contains a resource exhaustion vulnerability that allows anonymous visitors to bypass the system.images.max_pixels limit when system.images.url_actions is enabled. Attackers can send single-dimension or …

  • High 8.8

    Grav 2.0.15 before 2.2.2 Arbitrary Static Method Call via Flex Form replace-name@

    Grav from 2.0.15 before 2.2.2 contains an allowlist bypass vulnerability that allows page editors to call arbitrary public static methods by renaming Flex form fields with replace-name@. Attackers with page-edit permission can smuggle data-*@ directives past …

  • High 7.5

    Grav before 2.1.7 Information Disclosure via Nested .git Directories

    Grav before 2.1.7 contains an information disclosure vulnerability because bundled nginx, lighttpd, IIS, and Caddy 2 configurations block .git only at document root. Unauthenticated attackers can request nested repositories such as user/.git to retrieve Git c…

  • High 7.5

    Grav from 2.0.22 before 2.1.7 Clockwork Profiler Authentication Bypass via Proxy

    Grav from 2.0.22 before 2.1.7 contains an authentication bypass vulnerability in the Clockwork profiler that trusts loopback REMOTE_ADDR values. Unauthenticated attackers behind a same-host HTTP proxy can read profiler records exposing system and plugin confi…

  • High 7.2

    Grav API Plugin before 1.0.36 Privilege Escalation via Scalar Access Grants

    Grav grav-plugin-api before 1.0.36 contains a privilege escalation vulnerability that allows delegated user managers to obtain super-admin access by storing positive scalar admin or api parent grants. Attackers with api.users.write can edit account access map…

  • High 7.3

    Grav Login Plugin 1.2.0 before 3.9.9 Password Reset Token Disclosure via Reset Page

    Grav Login plugin 1.2.0 before 3.9.9 contains an information disclosure vulnerability that allows publishers to obtain password-reset tokens by authoring a page at the reset route. When a victim opens an emailed reset link, the publisher-controlled page rende…

  • High 8.1

    Grav Login Plugin 2.7.0 before 3.9.9 2FA Bypass via Remember-Me Cookie

    Grav Login plugin 2.7.0 before 3.9.9 contains an authentication bypass vulnerability that allows attackers with a valid password to skip two-factor authentication through remember-me cookie restoration. Attackers can obtain a persistent remember-me cookie aft…

  • High 8.1

    Grav Login Plugin 2.7.0 before 3.9.9 2FA Bypass via Profile Update Form

    Grav Login plugin 2.7.0 before 3.9.9 contains an authentication bypass in processUserProfile(), which checks that the session user exists but not that a pending front-end 2FA session is fully authorized. Attackers with a victim's password who can publish a pa…

  • High 7.5

    grav-plugin-comments before 1.2.11 Unauthenticated Information Disclosure

    The Comments plugin (getgrav/grav-plugin-comments) for Grav CMS through version 1.2.10 registers an admin handler that returns comment data as JSON without any authentication check. The handler branches on isAdmin(), which only indicates that the admin servic…

  • High 8.2

    Grav Data Manager before 1.4.5 Stored XSS via item-detail view

    The Grav Data Manager plugin (getgrav/grav-plugin-datamanager) versions 1.0.1 through 1.4.4 render stored data entries in the item-detail view (admin/templates/partials/item.html.twig) without escaping, applying Twig's `raw` filter — in some cases after a str…

  • High 8.0
    CVE-2026-100671 Public exploit

    Grav before 2.0.25 Session Cookie Theft via Twig Sandbox

    Grav is a flat-file CMS. In versions 2.0.19 through 2.0.24 — and in 2.0.0 through 2.0.18 and 1.7.x only where content Twig has been explicitly enabled — page content authored by a user holding only page-write permission is rendered through a Twig sandbox that…

  • High 8.8

    Grav CMS 2.0.14 through 2.0.24 Privilege Escalation via Blueprint Guard Bypass

    Grav CMS 2.0.14 through 2.0.24 contains a privilege escalation vulnerability in the group and account blueprints. The access map is gated by a `security@: admin.super` guard that is resolved by the field's exact path, so a submitted flat dot-notation key such…

  • High 7.5

    Grav before 2.0.25 Sensitive File Disclosure via Case-Variation Bypass

    Grav before 2.0.25 ships web server configuration samples whose access-control deny rules are matched case-sensitively. In webserver-configs/web.config (IIS), every deny rule (user_sensitive_folders, user_accounts, user_data, user_error_redirect, user_pages, …

  • High 7.5

    Grav 2.0.0-rc.1 through 2.0.21 Configuration Disclosure via print_r

    Grav is a flat-file CMS. In versions 2.0.0-rc.1 through 2.0.21, the Twig content sandbox fails to restrict the dump and serialize filters (print_r, vardump, json_encode, yaml_encode, string): GravExtension::assertSandboxDumpSafe() determines sandbox state by …

  • High 7.5

    Grav through 2.0.21 Unauthenticated Information Disclosure via Clockwork

    Grav is a flat-file CMS. In Grav 1.7.0 through 1.7.53.2 and 2.0.0 through 2.0.21, when the debugger is enabled (system.debugger.enabled: true, which is not the default), the Clockwork profiler endpoint is exposed without authentication: InitializeProcessor::h…

  • High 8.7

    Grav API Plugin before 1.0.20 Authentication Bypass via Host Header

    Grav API plugin versions before 1.0.20 build password reset links from the untrusted Host header in the forgot-password endpoint, allowing unauthenticated attackers to redirect reset tokens to attacker-controlled domains. Attackers can send password reset req…

  • High 8.7

    grav-plugin-api 1.0.0 through 1.0.19 Privilege Escalation via Dot-Keyed Super Flag

    grav-plugin-api versions before 1.0.20 contain a privilege escalation vulnerability in the InvitationsController where the stripSuperFlags() method only removes nested super flags but fails to strip dot-keyed equivalents like api.super. A non-super user manag…

  • High 8.7

    Grav API Plugin Authentication Bypass via Group-Inherited Super

    grav-plugin-api before 1.0.20 fails to validate group-inherited super permissions in user-management guards, allowing non-super user managers to modify super-admin accounts. Attackers with api.access and api.users.write can patch password fields on group-supe…

  • High 8.8

    Grav before 2.0.18 Remote Code Execution via sort filter

    Grav before 2.0.18 (affected versions <= 2.0.17) contains a remote code execution vulnerability in the Twig sort filter. The sortFunc wrapper in GravExtension.php hardcodes Twig's isSandboxed argument to false, so unlike |map/|filter/|reduce, |sort accepts a …

  • High 7.2

    Grav Shortcode Core before 6.2.5 Stored XSS via unescaped parameters

    Grav Shortcode Core before 6.2.5 contains stored cross-site scripting vulnerabilities in the [lorem] tag parameter and [details] summary parameter that are written to rendered pages without escaping. Attackers with page-edit access can inject arbitrary HTML a…

  • High 7.5

    Grav before 2.0.16 Information Disclosure via Twig Sandbox

    Grav before 2.0.16 contains an incomplete default denylist in the Twig sandbox configuration that fails to block access to system configuration secrets. Attackers with page-edit permission can use config.get() or config.toArray() in Twig templates to retrieve…

  • High 8.8

    Grav before 4.2.2 Remote Code Execution via Email Twig

    The Grav Email plugin (getgrav/grav-plugin-email) before 4.2.2 renders page-editor-controlled Email action parameters as unsandboxed Twig templates. An authenticated remote user with only api.access and api.pages.write permissions can place a Twig expression …

  • High 7.5

    Grav before 3.9.1 Timing Attack via Non-Constant-Time Token Comparison

    The getgrav/grav-plugin-login Composer plugin before 3.9.1 (used by Grav) compares password reset and account activation tokens using a non-constant-time === string comparison instead of hash_equals() in classes/Controller.php (taskReset()) and login.php (act…

  • High 8.4

    Grav CMS before 2.0.16 Symlink Following via createLockFile

    Grav CMS before 2.0.16 contains a symlink following vulnerability in Scheduler Job::createLockFile() that allows local attackers to overwrite arbitrary files by pre-creating symlinks at predictable lock file paths in the world-writable temp directory. Attacke…

  • High 8.1

    Grav before 2.0.16 Path Traversal via MediaUploadTrait deleteFile

    Grav before 2.0.16 contains a path traversal vulnerability in MediaUploadTrait::deleteFile() that allows authenticated users with media management permissions to delete arbitrary files by supplying filenames with directory traversal sequences. The method vali…

  • High 7.5

    Grav before 3.9.2 Host Header Injection via sendInvitationEmail

    Grav before 3.9.2 fails to validate untrusted Host headers in the sendInvitationEmail() function when constructing token-bearing invitation links. Attackers can manipulate the Host header to poison invitation links and redirect users to attacker-controlled do…

  • High 7.7

    Grav Flex Objects 1.4.0 through 1.4.7 Authorization Bypass via Shortcode

    Grav Flex Objects plugin versions 1.4.0 through 1.4.7 contain an authorization bypass vulnerability in the flex-objects shortcode that allows users with page-edit access to render any registered Flex collection without permission checks. Attackers can place t…

  • High 8.7

    Grav API Plugin: Missing authorization on API-key generate/revoke lets any admin.login user forge keys for any account

    Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.8, the Grav API plugin intercepts the apiKeyGenerate and apiKeyRevoke admin tasks in user/plugins/api/api.php and authorizes the caller with …

  • High 8.7

    Grav: Remote code execution via unrestricted callable in Blueprint::dynamicData()

    Grav is a file-based Web platform. Prior to 2.0.7, Grav Blueprint::dynamicData() in system/src/Grav/Common/Data/Blueprint.php sends an editor-controlled Class::method provider and arguments to call_user_func_array() without rejecting dangerous callback parame…

  • High 8.5

    Grav Shortcode Core Plugin: Stored XSS in shortcode-core attribute handlers

    Grav Shortcode Core Plugin allows for the development shortcode plugins that utilize the common format utilized by WordPress and BBCode. Prior to 6.2.2, Grav Shortcode Core passes shortcode syntax through Security::detectXss() because it contains no literal l…

  • High 7.5

    Grav API Plugin: JWT Access Token Accepted via `?token=` URL Query Parameter

    Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.0-rc.16, the Grav API plugin JwtAuthenticator::extractBearerToken() accepts a JWT from the token URL query parameter on every /api/v1 route, …

  • High 8.2

    Grav API Plugin: CORS 'Access-Control-Allow-Origin: *' on Authenticated API Responses

    Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.0-rc.16, the Grav API plugin CorsMiddleware returns Access-Control-Allow-Origin: * and permissive OPTIONS responses for authenticated /api/v1…

  • High 8.2

    Grav: .htaccess file extension rules bypass via case variation on case-insensitive filesystems

    Grav is a file-based Web platform. Prior to 2.0.4, the Grav .htaccess and webserver-configs/htaccess.txt security rules omit the Apache [NC] flag and therefore compare sensitive directory and file-extension patterns case-sensitively. On a case-insensitive fil…

  • High 8.1

    Grav API Plugin : API Key 'scopes' Never Enforced - Delegated Least-Privilege Keys Carry Full User ACL

    Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.6, the Grav API plugin ApiKeyManager::generateKey() stores a declared scopes array, but ApiKeyAuthenticator::authenticate() does not read key…

  • High 7.4

    Grav Login Plugin: 2FA Bypass via 'login.regenerate2FASecret' - Secret Rotation During Pending Challenge

    Grav Login Plugin adds login, basic ACL, and session wide messages to Grav. Prior to 3.8.11, the Grav Login plugin login.regenerate2FASecret task checks only that the pending-session user exists rather than requiring $user->authorized. After submitting a vict…

  • High 8.8

    Grav API Plugin: non-super api.users.write manager -> super-admin via createApiKey (incomplete fix of CVE-2026-59190); + 2FA strip of super

    Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.6, Grav API plugin UsersController::createApiKey(), generate2fa(), and disable2fa() omit the accessGrantsSuper() target check used by sibling…