Miggo Logo

CVE-2023-34252:
Grav Server-side Template Injection (SSTI) via Twig Default Filters

7.2

CVSS Score

Basic Information

EPSS Score
-
Published
6/16/2023
Updated
11/4/2023
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
getgrav/gravcomposer< 1.7.421.7.42

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from two key flaws: 1) GravExtension::filterFilter's conditional validation (only checking string inputs) allows array-based callable injection into array_filter. 2) Utils::isDangerousFunction doesn't handle array/closure inputs correctly, failing to block static method calls to dangerous classes. Together these enable SSTI via crafted Twig templates using filter/map with array callables targeting RCE gadgets in Grav/Symfony components.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

*i, **tu*lly w* **v* s*nt t** *u* r*port to [s**urity@**t*r*v.or*](m*ilto:s**urity@**t*r*v.or*) on **t* M*r** **** *n* on **t* *pril ****. # *r*v S*rv*r-si** T*mpl*t* Inj**tion (SSTI) vi* Insu**i*i*nt V*li**tion in *ilt*r*ilt*r ## Summ*ry: | **P

Reasoning

T** vuln*r**ility st*ms *rom two k*y *l*ws: *) *r*v*xt*nsion::*ilt*r*ilt*r's *on*ition*l v*li**tion (only ****kin* strin* inputs) *llows *rr*y-**s** **ll**l* inj**tion into *rr*y_*ilt*r. *) Utils::is**n**rous*un*tion *o*sn't **n*l* *rr*y/*losur* inpu