CVE-2021-24040:
Deserialization of Untrusted Data in ParlAI
9.8
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.96588%
CWE
Published
9/13/2021
Updated
4/13/2023
KEV Status
No
Technology
Python
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
parlai | pip | < 1.1.0 | 1.1.0 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from unsafe YAML deserialization via PyYAML's default yaml.load() method. The GitHub patch explicitly replaces yaml.load() with yaml.safe_load() in two locations within the _get_shared_models function of model_chat_blueprint.py. The original yaml.load() uses the unsafe Loader by default, which can instantiate arbitrary Python objects, leading to RCE. The direct correlation between the patch and CWE-502 confirms this as the root cause.