Miggo Logo

CVE-2020-13663:
Drupal Core Cross-Site Request Forgery (CSRF) vulnerability

8.8

CVSS Score
3.1

Basic Information

EPSS Score
0.44691%
Published
5/24/2022
Updated
2/6/2024
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
drupal/corecomposer>= 8.9.0, < 8.9.18.9.1
drupal/corecomposer>= 9.0.0, < 9.0.19.0.1
drupal/corecomposer>= 7.0.0, < 7.727.72
drupal/corecomposer>= 8.0.0, < 8.8.88.8.8
drupal/drupalcomposer>= 7.0.0, < 7.727.72
drupal/drupalcomposer>= 8.0.0, < 8.8.88.8.8
drupal/drupalcomposer>= 8.9.0, < 8.9.18.9.1
drupal/drupalcomposer>= 9.0.0, < 9.0.19.0.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The primary vulnerability existed in FormBuilder::doBuildForm, where the lack of input sanitization after detecting an invalid CSRF token allowed attackers to submit malicious payloads. The patch explicitly resets user input, POST data, and file uploads, confirming this was the root cause. The FormValidator::setInvalidTokenError's message adjustment (removing the reload link) suggests a secondary mitigation, though its direct impact on the vulnerability is less critical. Test cases in the commit diff validate() that form values were retained pre-patch, confirming the exploit path.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

*ross Sit* R*qu*st *or**ry vuln*r**ility in *rup*l *or* *orm *PI *o*s not prop*rly **n*l* **rt*in *orm input *rom *ross-sit* r*qu*sts, w*i** **n l*** to ot**r vuln*r**iliti*s.

Reasoning

T** prim*ry vuln*r**ility *xist** in `*orm*uil**r::*o*uil**orm`, w**r* t** l**k o* input s*nitiz*tion **t*r **t**tin* *n inv*li* *SR* tok*n *llow** *tt**k*rs to su*mit m*li*ious p*ylo**s. T** p*t** *xpli*itly r*s*ts us*r input, POST **t*, *n* *il* up