Skip to content
OpenAdvisories

Package · Packagist

getgrav/grav

99 known vulnerabilities.

99 results · Feed

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

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

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

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

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

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

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

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

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

  • High 7.4

    Grav < 2.0.4 2FA Bypass via Secret Regeneration

    Grav before 2.0.4 contains a two-factor authentication bypass vulnerability in the login plugin where the regenerate2FASecret task checks only user existence, not authorization, during the pending TOTP challenge window. Attackers who know the victim's passwor…

  • High 7.5

    Grav < 2.0.4 File Access Bypass via Case Variation

    Grav before 2.0.4 ships a default .htaccess (and reference webserver-configs/htaccess.txt) whose rules blocking access to sensitive file types (.yaml, .php, .json, etc.) lack the [NC] flag, making extension matching case-sensitive. On case-insensitive filesys…

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

  • Medium 6.9

    Grav CMS — Improper Handling of Highly Compressed Data in Installer::unZip()

    Grav is a file-based Web platform. Prior to 2.0.0, an authenticated admin.super user can crash Grav or fill the disk by uploading a specially crafted ZIP archive through the Direct Install tool because Installer::unZip calls ZipArchive::extractTo without limi…

  • Medium 4.8

    Grav: Stored CSS injection via Markdown image ?style=… reaches MediaObjectTrait::style()

    Grav is a file-based Web platform. Prior to 2.0.0-rc.9, Grav's incomplete fix for stored XSS through the Markdown media attribute action (CVE-2026-42841) leaves the sibling MediaObjectTrait::style method reachable through the same Markdown excerpt-action pipe…

  • Medium 6.8

    Grav: Admin Backup Zip File Exposes Account Credentials and Configuration Secrets

    Grav is a file-based Web platform. Prior to 1.7.53, an authenticated administrator with backup permissions can download a ZIP archive containing the full Grav installation root, including user/accounts/admin.yaml with the administrator password hash and user/…

  • High 8.7

    Grav: Unauthenticated denial of service via unbounded image derivative dimensions

    Grav is a file-based Web platform. Prior to 1.7.53 and 2.0.0-rc.8, Grav allows an unauthenticated visitor to exhaust server memory and CPU by requesting image derivatives with oversized dimensions through URL query image actions such as forceResize in Grav::f…

  • Medium 6.5

    Grav before 2.0.2 Config Exfiltration via offsetGet Filter

    Grav before 2.0.2 contains a Twig sandbox bypass that allows a page author (any admin.pages user, or anyone able to write to user/pages) to exfiltrate configuration secrets. Although the sandbox replaces the 'config' variable with a redacted facade and strips…

  • Medium 6.5

    Grav before 2.0.1 Decompression Bomb via ZipArchiver

    Grav before 2.0.1 contains a decompression bomb vulnerability in ZipArchiver::extract() that lacks limits on uncompressed size, file count, and nesting depth. Attackers can supply a crafted ZIP archive that expands to fill available disk space, causing denial…

  • Medium 4.8

    Grav - Stored CSS Injection via Markdown Image resize() Action

    Grav before 2.0.0 (affected through 2.0.0-rc.9 and the 2.0 branch) contains a stored CSS injection vulnerability in the Markdown image resize() media action. Prior media hardening rejects direct ?style= payloads and unsafe attribute() fallbacks, but the resiz…

  • Critical 9.8

    Grav - Multiple Remote Code Execution Vulnerabilities via Unsafe Unserialize and Command Injection

    Grav CMS before 2.0.0-beta.2 contains multiple code-execution vulnerabilities. Three unsafe unserialize() calls - in Scheduler\JobQueue, Framework\Cache\Adapter\FileCache, and Session - deserialize untrusted data without restricting allowed classes, enabling …

  • Medium 5.4

    Grav - Cross-Site Scripting in Admin Plugin Page Editor

    Grav before 1.6.30 contains a cross-site scripting vulnerability in the Admin plugin page editor default security configuration. Privileged users with page editing capabilities can inject malicious scripts to execute arbitrary code and install malicious plugi…

  • Medium 6.5

    Grav - XML External Entity Injection via SVG Upload

    Grav before 2.0.0-beta.2 contains an XML external entity injection vulnerability in SVG file upload processing that allows authenticated attackers to read arbitrary files. The application uses simplexml_load_string without disabling external entity loading, e…

  • High 8.7

    Grav: Low-privileged API users can create super-admin accounts via blueprint-upload

    Grav is a file-based Web platform. In Grav 2.0.0-beta.2, a low-privileged authenticated API user with api.media.write can abuse /api/v1/blueprint-upload to write an arbitrary YAML file into user/accounts/, then log in as the newly created account with api.sup…

  • Medium 6.2

    grav-plugin-admin: Stored Cross-Site Scripting (XSS) Reflected endpoint /admin/pages/[page], parameter data[header][title]

    grav-plugin-admin is the admin plugin for Grav is an HTML user interface that provides a convenient way to configure Grav and easily create and modify pages. Prior to 1.10.49.5, the application fails to properly validate and sanitize user input in the data[he…

  • High 7.7

    Grav: Twig sandbox allows editor-role users to exfiltrate all plugin secrets via Config::toArray()

    Grav is a file-based Web platform. Prior to 2.0.0-rc.2, the Twig sandbox allow-list permits any user with the admin.pages role to call config.toArray() from within a page body, dumping the entire merged site configuration — including all plugin secrets (SMTP …

  • Medium 5.4

    grav-plugin-form: XSS via Taxonomy Field Values in Admin Panel

    The form plugin for Grav adds the ability to create and use forms. Prior to 9.1.0, a Stored Cross-Site Scripting (XSS) vulnerability exists in the Grav CMS Form plugin's select field template. Taxonomy tag and category values are rendered with the Twig |raw f…

  • Critical 9.4
    CVE-2026-42613 Public exploit

    Grav: Privilege Escalation via Missing Server-Side Validation of groups/access

    Grav is a file-based Web platform. Prior to 2.0.0-beta.2, the Login::register() method in the Login plugin accepts attacker-controlled groups and access fields from the registration POST data without server-side validation. When registration is enabled and gr…