CVE Catalog

CVE-2018-20406

HighCVSS 7.5
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Very high risk
5.79%

93th percentile - higher than 93% of all known CVEs

Summary

A vulnerability in Modules/_pickle.c in Python before 3.7.1 involves an integer overflow via a large LONG_BINPUT value mishandled during a resize-to-twice-the-size attempt. It may cause memory exhaustion, but only when the pickle format is used to serialize tens or hundreds of gigabytes of data.

Risk Assessment

In practice the risk is low and applies only to applications processing extremely large pickle data. It may still lead to memory exhaustion and denial of service.

Recommendation

Upgrade Python to 3.7.1 or later (or the corresponding version in the 3.4, 3.5, 3.6 branches). Also avoid deserializing untrusted pickle data and limit the size of processed data.

Other vulnerabilities in Python

See all
Original NVD description (English source)

Modules/_pickle.c in Python before 3.7.1 has an integer overflow via a large LONG_BINPUT value that is mishandled during a "resize to twice the size" attempt. This issue might cause memory exhaustion, but is only relevant if the pickle format is used for serializing tens or hundreds of gigabytes of data. This issue is fixed in: v3.4.10, v3.4.10rc1; v3.5.10, v3.5.10rc1, v3.5.7, v3.5.7rc1, v3.5.8, v3.5.8rc1, v3.5.8rc2, v3.5.9; v3.6.10, v3.6.10rc1, v3.6.11, v3.6.11rc1, v3.6.12, v3.6.7, v3.6.7rc1, v3.6.7rc2, v3.6.8, v3.6.8rc1, v3.6.9, v3.6.9rc1; v3.7.1, v3.7.1rc1, v3.7.1rc2, v3.7.2, v3.7.2rc1, v3.7.3, v3.7.3rc1, v3.7.4, v3.7.4rc1, v3.7.4rc2, v3.7.5, v3.7.5rc1, v3.7.6, v3.7.6rc1, v3.7.7, v3.7.7rc1, v3.7.8, v3.7.8rc1, v3.7.9.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS