Miggo Logo

CVE-2024-34072: sagemaker-python-sdk vulnerable to Deserialization of Untrusted Data

7.8

CVSS Score
3.1

Basic Information

EPSS Score
0.62152%
Published
5/3/2024
Updated
5/3/2024
KEV Status
No
Technology
TechnologyPython

Technical Details

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

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from the NumpyDeserializer's deserialize method using numpy.load() with allow_pickle=True by default in versions <2.218.0. The commit diff shows the deserialization logic directly used the class's allow_pickle parameter (which was True by default pre-patch) when loading NPY/NPZ formats. This combination allows dangerous pickle deserialization. The vulnerability was fixed by setting allow_pickle=False by default and adding explicit error handling to prevent silent use of pickle loading without explicit opt-in.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Imp**t s***m*k*r.**s*_**s*ri*liz*rs.Numpy**s*ri*liz*r mo*ul* ***or* v*.***.* *llows pot*nti*lly uns*** **s*ri*liz*tion w**n untrust** **t* is p*ss** *s pi*kl** o*j**t *rr*ys. T*is *ons*qu*ntly m*y *llow *n unprivil**** t*ir* p*rty to **us* r*mot

Reasoning

T** vuln*r**ility st*ms *rom t** Numpy**s*ri*liz*r's **s*ri*liz* m*t*o* usin* numpy.lo**() wit* *llow_pi*kl*=Tru* *y ****ult in v*rsions <*.***.*. T** *ommit *i** s*ows t** **s*ri*liz*tion lo*i* *ir**tly us** t** *l*ss's *llow_pi*kl* p*r*m*t*r (w*i**