Miggo Logo

CVE-2018-8021: Deserialization of Untrusted Data in superset

9.8

CVSS Score
3.0

Basic Information

EPSS Score
0.98971%
Published
11/9/2018
Updated
10/28/2024
KEV Status
No
Technology
TechnologyPython

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
supersetpip< 0.230.23

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from using Python's unsafe pickle module for serialization/deserialization:

  1. export_dashboards in models/core.py used pickle.dumps() to serialize dashboards, creating attack vectors in exported files
  2. import_dashboards in views/core.py used pickle.load() on user-controlled input, enabling RCE via malicious pickle payloads
  3. The patch replaced pickle with JSON serialization and introduced a safe decoder, confirming these were the vulnerable points
  4. CVE description explicitly mentions unsafe load method from pickle library
  5. Exploit PoC demonstrates weaponized pickle payloads being uploaded through the dashboard import functionality

Vulnerable functions

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

WAF Protection Rules

WAF Rule

V*rsions o* Sup*rs*t prior to *.** us** *n uns*** lo** m*t*o* *rom t** pi*kl* li*r*ry to **s*ri*liz* **t* l***in* to possi*l* r*mot* *o** *x**ution. Not* Sup*rs*t *.** w*s r*l**s** prior to *ny Sup*rs*t r*l**s* un**r t** *p**** So*tw*r* *oun**tion.

Reasoning

T** vuln*r**ility st*ms *rom usin* Pyt*on's uns*** pi*kl* mo*ul* *or s*ri*liz*tion/**s*ri*liz*tion: *. *xport_**s**o*r*s in mo**ls/*or*.py us** pi*kl*.*umps() to s*ri*liz* **s**o*r*s, *r**tin* *tt**k v**tors in *xport** *il*s *. import_**s**o*r*s in