Skip to content
OpenAdvisories

Product · getgrav

grav

159 known vulnerabilities.

63 results · Clear filters · Feed

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

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

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

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

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

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

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

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

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

  • Medium 5.3

    Grav API Plugin before 1.0.16 SSRF via DNS Rebinding

    Grav API plugin before 1.0.16 contains a server-side request forgery vulnerability in webhook delivery that allows attackers to bypass hostname validation by DNS rebinding. Attackers controlling authoritative DNS for a configured webhook hostname can answer v…

  • Medium 6.0

    Grav: Authenticated ReDoS via regex_replace in Twig Sandbox

    Grav is a file-based Web platform. Prior to 2.0.4, Grav allowlists the regex_replace filter and function in system/config/security.yaml, and GravExtension::regexReplace() passes an editor-controlled pattern directly to preg_replace(). When security.twig_conte…

  • Medium 6.5

    Grav: Twig sandbox config exfiltration via grav.offsetGet + dump filter (CVE-2026-44738 bypass)

    Grav is a file-based Web platform. Prior to 2.0.2, the Grav Twig content sandbox permits grav.offsetGet('config') to return the raw configuration object and permits json_encode, print_r, yaml_encode, and string filters to serialize that object without passing…

  • Medium 6.5

    Grav: Decompression Bomb via ZipArchiver - Missing Extraction Limits

    Grav is a file-based Web platform. Prior to 2.0.1, Grav ZipArchiver::extract() in system/src/Grav/Common/Filesystem/ZipArchiver.php passes archives to ZipArchive::extractTo() without enforcing the system.gpm.archive uncompressed-size, file-count, or nesting-d…

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

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

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

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

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

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

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

  • Medium 5.4

    Grav Stored Cross-Site Scripting via Shortcode Attribute Handlers

    Grav contains a stored cross-site scripting vulnerability in shortcode-core attribute handlers where the XSS detection scan only matches payloads containing literal angle brackets, allowing shortcode parameters to bypass validation. Attackers with admin.pages…

  • Medium 5.4

    grav-plugin-login < 3.8.11 CSRF via regenerate2FASecret

    grav-plugin-login before 3.8.11 contains a cross-site request forgery (CSRF) vulnerability in the login.regenerate2FASecret frontend task, which regenerates and persists a new TOTP secret for the authenticated session user without any anti-CSRF nonce or Origi…

  • Medium 6.5

    Grav < 2.0.4 ReDoS via regex_replace in Sandbox

    Grav before 2.0.4 contains a regular expression denial of service (ReDoS) vulnerability in the regex_replace filter and function, which are allowlisted in the Twig content sandbox. When Twig processing in page content is enabled (security.twig_content.process…

  • Medium 6.3

    Grav Flex-Objects < 1.4.3 Authorization Bypass via API

    Grav Flex-Objects before version 1.4.3 contains a broken access control vulnerability in the admin-next REST API that allows authenticated users with only api.access permission to perform unauthorized CRUD operations on permission-less directories. Attackers …

  • Medium 6.1

    Grav before 2.0.1 XSS via Twig String Concatenation

    Grav v2.0.0 contains a cross-site scripting vulnerability (fixed in 2.0.1). The XSS blueprint validator (Security::detectXss()) runs on raw page content before Twig processing. When Twig content processing is enabled (twig_content.process_enabled: true), an a…

  • Medium 5.3

    Grav before 2.0.4 Improper Session Invalidation JWT Access Tokens

    The Grav API plugin (getgrav/grav-plugin-api) before 2.0.4 contains an improper session invalidation vulnerability where JWT access tokens are issued without a jti (JWT ID) claim and therefore cannot be revoked server-side. Unlike refresh tokens, access token…

  • Medium 6.5

    Grav before 2.0.2 Decompression Bomb via Forged ZIP Size

    Grav 2.0.1 contains a decompression-bomb size-cap bypass in ZipArchiver and GPM\Installer. The size bound introduced in 2.0.1 sums the uncompressed size declared in each entry's ZIP central-directory header (ZipArchive::statIndex()['size']) and rejects archiv…