Miggo Logo

CVE-2019-17626: XML Injection in ReportLab

9.8

CVSS Score
3.1

Basic Information

EPSS Score
0.94674%
Published
5/24/2022
Updated
10/26/2024
KEV Status
No
Technology
TechnologyPython

Technical Details

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

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from the toColor class implementation in colors.py where eval() was directly used on input arguments. Multiple sources (CVE description, commit diff, and advisory links) show the vulnerable pattern 'eval(arg)' in color processing. The patch replaced eval() with rl_safe_eval() which implements safer evaluation. The XML injection occurs when user-controlled color attributes containing Python code are passed to this function.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

R*portL** t*rou** *.*.** *llows r*mot* *o** *x**ution ****us* o* to*olor(*v*l(*r*)) in *olors.py, *s **monstr*t** *y * *r**t** XML *o*um*nt wit* '<sp*n *olor="' *ollow** *y *r*itr*ry Pyt*on *o**.

Reasoning

T** vuln*r**ility st*ms *rom t** to*olor *l*ss impl*m*nt*tion in *olors.py w**r* *v*l() w*s *ir**tly us** on input *r*um*nts. Multipl* sour**s (*V* **s*ription, *ommit *i**, *n* **visory links) s*ow t** vuln*r**l* p*tt*rn '*v*l(*r*)' in *olor pro**ss
CVE-2019-17626: ReportLab XML Color Attr RCE | Miggo