Skip to content
OpenAdvisories

Product · getgrav

grav

159 known vulnerabilities.

grav at a glance

Last 12 months
145
Critical · all time
10
Exploited · all time
0
Public exploit · all time
9
New vulnerabilities per month · last 12 months
0 50 100 December 2025: 19 vulnerabilities Dec 2025 January 2026: 0 vulnerabilities February 2026: 0 vulnerabilities March 2026: 0 vulnerabilities Mar April 2026: 0 vulnerabilities May 2026: 11 vulnerabilities, 2 critical June 2026: 0 vulnerabilities Jun July 2026: 37 vulnerabilities, 3 critical August 2026: 52 vulnerabilities, 4 critical September 2026: 13 vulnerabilities Sep October 2026: 11 vulnerabilities November 2026: 2 vulnerabilities
Show as table
MonthVulnerabilitiesCritical
Nov 202620
Oct 2026110
Sep 2026130
Aug 2026524
Jul 2026373
Jun 202600
May 2026112
Apr 202600
Mar 202600
Feb 202600
Jan 202600
Dec 2025190
Nov 202500
Oct 202500
Sep 202500
Aug 202500
Jul 202500
Jun 202500
May 202500
Apr 202500
Mar 202500
Feb 202500
Jan 202500
Dec 202400

159 results · Feed

  • High 8.7

    Grav Login plugin before 3.11.0 contains an authentication bypass vulnerability that allows attackers with an account p…

  • High 7.1

    Grav Lightbox Gallery 1.1.0 before 1.3.2 File Read via Shortcode Media Actions

    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_options shortcode values without core's allowed media action check. A page editor can chain addMetaFile with value, toYaml or toJson to read ser…

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

  • Medium 6.3

    Grav 2.0.0 before 2.2.5 Unauthorized Page Deletion via Flex Form Directives

    Grav from 2.0.0 before 2.2.5 contains an improper access control vulnerability in FlexDirectory::dynamicFlexField() that allows page authors to call arbitrary Flex object methods via flex-*@ directives in page frontmatter. When a user with page edit rights op…

  • Medium 5.7

    Grav 2.0.0 before 2.2.5 HTTP Basic Credential Disclosure via Twig Uri

    Grav from 2.0.0 before 2.2.5 contains an information disclosure vulnerability that allows page authors to capture visitors' HTTP Basic credentials through Twig page content. Authors can print the request Uri object, which embeds PHP_AUTH_USER and PHP_AUTH_PW,…

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

  • Medium 6.5

    Grav 2.0.0 before 2.2.2 Information Disclosure via Form config-*@ Directives

    Grav from 2.0.0 before 2.2.2 contains an information disclosure vulnerability that allows page editors to read protected configuration by adding config-*@ directives to page frontmatter forms. Attackers with page-edit permission can bypass the Twig sandbox co…

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

  • Medium 6.5

    Grav before 2.1.7 Memory Exhaustion via Oversized Image Transforms

    Grav before 2.1.7 contains a denial of service vulnerability that allows authenticated media authors to exhaust memory by uploading compressed oversized raster images. Attackers can reference a Twig or Markdown transform so GD or Imagick decodes the full sour…

  • Medium 6.5

    Grav 2.0.22 before 2.1.7 Clockwork Debugger Token Disclosure via Twig Sandbox

    Grav from 2.0.22 before 2.1.7 contains an information disclosure vulnerability that allows page editors to read the Clockwork debugger token because the sandbox redaction list omits system.debugger.token. Attackers can render the token through editor-authored…

  • 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, …

  • Medium 6.5

    Grav before 2.0.25 Sandbox Escape via array Filter

    Grav 2.0.0 through 2.0.24 contain a Twig content sandbox escape. The `array` filter (and its identical function form) is on the sandbox allowlist but is registered without the needs_is_sandboxed guard that print_r, vardump, json_encode, yaml_encode and string…

  • Medium 5.3

    grav-plugin-login 3.8.7 through 3.9.6 Two-Factor Authentication Bypass

    grav-plugin-login (the Grav CMS Login plugin) versions >= 3.8.7 and < 3.9.7 allow the two-factor authentication challenge to be bypassed for content gated by the authenticated() Twig function or the [authenticated] shortcode. On sites with 2FA enabled, Login:…

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

  • Low 1.8

    Grav 1.7.50.2 allows admins to enter JavaScript via the Home Page editor. NOTE: the relevance of this for stored XSS is…

  • Medium 5.1

    Grav before 2.0.20 Cross-Site Scripting via Assets Sandbox

    Grav before 2.0.20 contains a cross-site scripting vulnerability in the Twig sandbox policy that allowlists addJs and addCss methods on Grav\Common\Assets without proper output escaping. Page editors can inject arbitrary script by registering malicious assets…

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

  • Medium 6.5

    Grav Admin Plugin Path Traversal via Save As Language Code

    Grav versions before 1.10.55 contain a path traversal vulnerability in the admin plugin's Save As action that fails to validate the language code parameter. An authenticated admin user with admin.pages.create permission can supply directory traversal sequence…

  • Medium 5.4

    Grav Admin before 2.0.20 Cross-Site Scripting via marked.js

    Grav Admin before 2.0.20 fails to sanitize output from marked.parse() before injecting it into the DOM via Svelte's {@html} directive in MarkdownEditor and MarkdownModal components. Attackers can inject javascript: URI schemes in plugin or theme changelogs to…

  • Medium 6.4

    Grav 2.0.0 through 2.0.17 Stored XSS via Modular Pages

    Grav versions 2.0.0 through 2.0.17 fail to apply save-time XSS detection to modular pages, allowing authenticated page editors to store Twig-assembled XSS payloads. Attackers with page-edit rights can create modular pages with malicious Twig code that execute…

  • Medium 5.4

    Grav before 1.0.18 Authentication Bypass via Scoped API Key

    The Grav API plugin (getgrav/grav-plugin-api) before 1.0.18 does not apply the API-key scope cap in the injectSecurityTab() function of BlueprintController when deciding whether a page's security/permissions blueprint section is editable. Because the function…

  • Critical 9.8

    Grav before 1.0.18 Authentication Bypass via Scoped API Key

    The getgrav/grav-plugin-api plugin before 1.0.18 does not enforce API-key scope in the requireNotSuperTarget() function in UsersController.php across seven sensitive user-management endpoints. The check uses isSuperAdmin() on the acting account rather than ve…

  • Medium 6.5

    Grav before 2.0.16 Information Disclosure via offsetGet

    Grav before 2.0.16 allows sandboxed Twig templates to access sensitive User fields through allow-listed offsetGet() and offsetexists() methods that lack field filtering. Attackers with page-edit permissions can call offsetGet() on User objects to extract hash…

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

  • Medium 5.4

    Grav CMS before 2.0.16 Origin Validation Bypass via Referer

    Grav CMS before 2.0.16 contains an origin validation bypass in the Uri::referrer() and Pages::referrerRoute() methods, which validate the Referer header using an unanchored string prefix match (str_starts_with($referrer, $base)) with no trailing delimiter. An…

  • Low 3.7

    Grav CMS before 2.0.16 Timing Attack via verifyNonce

    Grav CMS before 2.0.16 contains a timing vulnerability in Utils::verifyNonce() that uses non-constant-time string comparison with the === operator instead of hash_equals() for CSRF nonce validation. Attackers can measure response timing differences to recover…

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

  • Medium 6.5

    Grav CMS before 2.0.16 Information Disclosure via Twig Sandbox Bypass

    Grav CMS before 2.0.16 fails to filter system, site, and theme configuration arrays in sandboxed Twig renders, allowing content editors to read sensitive configuration values. Attackers with page-content edit access can access raw configuration arrays includi…

  • Medium 6.5

    Grav CMS before 2.0.16 Path Traversal via media_directory

    Grav CMS before 2.0.16 contains a path traversal vulnerability in the media_directory() Twig function that fails to validate filesystem paths, allowing authenticated users to enumerate and access files outside intended scope. Attackers with page authoring pri…

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

  • Critical 9.8

    Grav Login Plugin before 1.0.16 Privilege Escalation via Unlock

    Grav Login plugin versions before 1.0.16 fail to validate the target account's privilege level in the onApiUserListRowAction unlock handler. An attacker with api.users.write permission can clear login lockout counters on admin.super accounts, removing brute-f…

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