Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain media-author account access
-
DeliveryUpload compressed oversized raster image
-
ExploitReference image via Twig/Markdown transform
-
ExecutionGD/Imagick decodes without dimension checks
-
PersistMemory exhausted on anonymous page requests
-
ImpactRepeated page unavailability (DoS)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Compression ratio limits
|
| Exploitation Conditions | Requires an authenticated account with media-author (upload) privileges to introduce a maliciously crafted, highly compressed oversized raster image (PR:L confirmed by CVSS). The decode-amplification only triggers when the image is rendered through a Twig or Markdown image transform, meaning server-side image processing via GD or Imagick must be active and the transform must lack source-dimension validation (the vulnerable behavior fixed before 2.1.7). The amplifying/limiting factor is this split: the setup needs author privileges, but once the transformed image is embedded in published content, unauthenticated/anonymous HTTP requests to that page repeatedly trigger memory exhaustion, so the sustained-DoS trigger is not itself privileged. Mitigation is to upgrade to Grav 2.1.7 or later and/or restrict media-author trust. |
| Impact | This is a moderate-priority availability issue, not a critical emergency. The CVSS 4.0 base score of 7.1 is driven entirely by availability impact (VA:H) with no confidentiality or integrity impact (VC:N/VI:N) - it is purely a denial-of-service data-amplification flaw (CWE-409). The vector shows network attack (AV:N), low complexity (AC:L), and crucially low privileges (PR:L), meaning the initial upload requires an authenticated media-author account, which substantially limits the attacker population versus a fully unauthenticated flaw. There is an important nuance the single CVSS vector obscures: the description indicates a two-stage exploit - an authenticated media author plants an oversized compressed raster image, but once a Twig/Markdown transform references it, *anonymous* requests can repeatedly trigger memory exhaustion. So the trigger surface is effectively unauthenticated even though the setup is not; this makes repeated, low-effort availability disruption plausible once an attacker has any author-level foothold. EPSS is not provided in the input, KEV status is not listed (so not CISA-confirmed exploited), and no public POC is referenced, so exploitation signals are absent. Net: a real, actionable availability bug for Grav operators, but the authenticated-upload prerequisite keeps it below drop-everything urgency for most deployments. |
| Exploit ScenarioDerived | An attacker who holds (or phishes/registers) a media-author account on a Grav site uploads a highly compressed oversized raster image (a 'decompression bomb'). They then publish content referencing a Twig or Markdown image transform so that GD or Imagick decodes the full uncompressed image without dimension checks; thereafter any anonymous visitor requesting that page forces the server to allocate massive memory, repeatedly crashing or hanging the site. No public exploit code is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Memory exhaustion denial of service affects Grav CMS versions before 2.1.7, where an authenticated user with media-author upload privileges can submit a highly compressed oversized raster image that, when referenced through a Twig or Markdown image transform, is fully decoded by GD or Imagick without source-dimension validation. Once the transformed image is embedded in published content, unauthenticated page requests repeatedly trigger the decode-and-allocate behavior, causing sustained page unavailability; the assessed CVSS 4.0 base score is 7.1 (AV:N/AC:L/AT:N/PR:L/UI:N/VA:H), and no public exploit code was identified at time of analysis.
RemediationAI
Upgrade to Grav CMS 2.1.7 or later - vendor-released patch: 2.1.7 - which adds source-dimension checks before decoding, as documented in the vendor advisory https://github.com/getgrav/grav/security/advisories/GHSA-h253-r5hw-95r5 and the VulnCheck advisory https://www.vulncheck.com/advisories/grav-before-2.1.7-memory-exhaustion-via-oversized-image-transforms. If immediate upgrade is not possible, restrict media-author upload rights to fully trusted users, since the attack requires an authenticated account with upload privileges (PR:L) to place the crafted image; note this does not remove already-published malicious images, so scan or purge existing media and any published pages that embed untrusted raster transforms. As a further compensating control, disable or constrain Twig/Markdown image transforms on user-supplied content, or run PHP with a tighter memory_limit so the worker fails per-request rather than exhausting the server - the trade-off is that legitimate large-image processing may be rejected or fail with out-of-memory errors. Also consider adding a PHP-level image dimension validation step (e.g., getimagesize) before GD/Imagick decoding, capping megapixels to a sane threshold for the deployment.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability is classified CWE-409 (Improper Handling of Highly Compressed Data / Data Amplification). Grav is a flat-file PHP CMS that renders content through Twig templates and Markdown; image transforms in those pipelines route raster images to the GD or Imagick PHP extensions for decoding and resizing. Before 2.1.7, the transform path did not validate the source image's declared or computed dimensions before decoding, so an attacker could supply a small, highly compressed raster file (for example, a large uniform-color PNG or JPEG) whose decompressed pixel buffer is orders of magnitude larger than the file itself. CPE cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:* identifies all Grav releases prior to 2.1.7 as affected; the CVSS vector PR:L confirms the attacker must hold an authenticated account with media-author upload rights, but the resulting memory exhaustion is triggered by anonymous HTTP requests to any page that embeds the transformed image, splitting the setup privilege from the sustained denial-of-service trigger. The fix in 2.1.7 adds dimension checks before the decode, capping the allocation.
Know when Grav gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Initial upload needs media-author privileges so PR:L; low complexity and network-reachable trigger give AV:N/AC:L; impact is availability-only (A:H), with no confidentiality or integrity effect.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
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 source without dimension checks, letting anonymous requests repeatedly cause page unavailability.
Executive ViewAI
Grav CMS versions before 2.1.7 are vulnerable to a memory exhaustion denial-of-service attack that can render websites unavailable. An authenticated user with media upload privileges can upload a specially crafted image that, when embedded in content, causes sustained page unavailability for all visitors. This could disrupt public-facing services, damage customer trust, and require emergency mitigation. No vendor patch is currently available, and no public exploit code has been identified at this time.
No vendor-released patch identified at time of analysis; interim mitigations include restricting media upload privileges to trusted users, implementing server-side validation of image dimensions and compression ratios, configuring memory limits for GD/Imagick, deploying WAF rules to block oversized image transforms, and monitoring server memory usage for anomalies.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Server-side template injection (SSTI) in Grav (getgrav/grav) prior to 1.8.0-beta.27 allows an authenticated attacker hol
Broken access control in Grav CMS (CWE-285) before 1.8.0-beta.27 lets an authenticated editor-level user escalate their
A Remote Code Execution (RCE) vulnerability in Grav CMS v1.7.48 allows an authenticated admin to upload a malicious plug
Grav is a file-based Web platform. Rated critical severity (CVSS 9.9), this vulnerability is remotely exploitable, low a
GravCMS 1.10.7 allows unauthenticated remote attackers to write arbitrary YAML configuration files, leading to full serv
Remote code execution in Grav CMS 2.0.4 (fixed in 2.0.7) lets an authenticated user holding the admin.pages or api.pages
Remote code execution in Grav CMS before 2.0.15 allows attackers holding page-edit or blueprint-config privileges to wri
Vertical privilege escalation in Grav CMS before 2.0.14 lets a delegated administrator holding only the admin.users perm
Stored cross-site scripting in Grav CMS before 2.0.15 lets authenticated editors smuggle JavaScript event handlers past
Server-side request forgery (SSRF) in Grav CMS versions prior to 1.7.49.5 allows remote authenticated attackers to make
Grav is a file-based Web platform. Prior to 1.8.0-beta.27, Grav CMS is vulnerable to a Server-Side Template Injection (S
Remote code execution in Grav CMS before 2.0.13 allows authenticated low-privilege users to plant and execute arbitrary
EUVD-2026-97626
GHSA-fr83-pf82-gwp5
NVD
CVE.org
EPSS
Exploit-DB