CVE-2018-17175:
In marshmallow library the schema "only" option treats an empty list as implying no "only" option
5.3
CVSS ScoreBasic Information
CVE ID
GHSA ID
EPSS Score
-
CWE
Published
10/10/2018
Updated
9/24/2024
KEV Status
No
Technology
Python
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
marshmallow | pip | < 2.15.1 | 2.15.1 |
marshmallow | pip | >= 3.0a0, < 3.0.0b9 | 3.0.0b9 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from truthiness checks on the 'only' parameter. The patched changes explicitly check for None instead of falsy values. The three modified functions all handled the 'only' parameter validation and field filtering logic. In vulnerable versions, passing an empty list to 'only' would bypass field filtering in _normalize_nested_options and _update_fields due to Python's falsy evaluation of empty lists, while init's default empty tuple initialization exacerbated this behavior. These functions would appear in stack traces when processing serialization requests with empty 'only' parameters.