Miggo Logo

CVE-2018-7600:
Drupal Core Remote Code Execution Vulnerability

9.8

CVSS Score
3.0

Basic Information

EPSS Score
0.99999%
Published
5/14/2022
Updated
4/23/2024
KEV Status
Yes
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
drupal/corecomposer>= 7.0, < 7.587.58
drupal/corecomposer>= 8.0, < 8.3.98.3.9
drupal/corecomposer>= 8.4.0, < 8.4.68.4.6
drupal/corecomposer>= 8.5.0, < 8.5.18.5.1
drupal/drupalcomposer>= 7.0, < 7.587.58
drupal/drupalcomposer>= 8.0, < 8.3.98.3.9
drupal/drupalcomposer>= 8.4, < 8.4.68.4.6
drupal/drupalcomposer>= 8.5, < 8.5.18.5.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from insufficient input validation in Drupal's Form API and rendering system. Attackers could inject array keys starting with '#' (e.g., #post_render, #lazy_builder) via user-controlled parameters like the registration form's mail field. These keys were processed by FormBuilder::doBuildForm and Renderer::renderRoot, which executed callbacks without proper authorization. The absence of RequestSanitizer::stripDangerousValues in vulnerable versions allowed this injection. The exploit leveraged AJAX callbacks (e.g., element_parents) to trigger rendering of malicious arrays, leading to RCE. The patch introduced input sanitization to strip dangerous keys, confirming the root cause.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

*rup*l ***or* *.**, *.x ***or* *.*.*, *.*.x ***or* *.*.*, *n* *.*.x ***or* *.*.* *llows r*mot* *tt**k*rs to *x**ut* *r*itr*ry *o** ****us* o* *n issu* *****tin* multipl* su*syst*ms wit* ****ult or *ommon mo*ul* *on*i*ur*tions.

Reasoning

T** vuln*r**ility st*ms *rom insu**i*i*nt input v*li**tion in *rup*l's *orm *PI *n* r*n**rin* syst*m. *tt**k*rs *oul* inj**t *rr*y k*ys st*rtin* wit* '#' (*.*., #post_r*n**r, #l*zy_*uil**r) vi* us*r-*ontroll** p*r*m*t*rs lik* t** r**istr*tion *orm's