Python 3.x through 3.9.1 has a buffer overflow in PyCArg_repr in _ctypes/callproc.c, which may lead to remote code execution in certain Python applications that accept floating-point numbers as untrusted input, as demonstrated by a 1e300 argument to c_double.from_param. This occurs because sprintf is used unsafely.
CVE-2021-3177
Score 9.8 from GitHub Security Advisory (severity: CRITICAL) published 2022-05-24. NVD baseline CVSS 9.8; sources differ by 0.0.
- High severity, but no confirmed exploitation yet
A fix is available — apply it.
- CVSS v3
- 9.8
- EG Score
- 9.8(medium)
- EG Risk
- —
- EPSS
- 97.0%
- KEV
- Not listed
Published
January 19, 2021
Last Modified
December 18, 2025
Advisory Details (10)
Auto-updated May 24, 2026[SECURITY] Fedora 32 Update: python3.10-3.10.0~a5-1.fc32 - package-announce - Fedora mailing-lists
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/FPE7SMXYUIWPOIZV4DQYXODRXMFX3C5E/[SECURITY] Fedora 32 Update: python37-3.7.10-1.fc32 - package-announce - Fedora mailing-lists
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/FONHJIOZOFD7CD35KZL6SVBUTMBPGZGA/[SECURITY] Fedora 33 Update: mingw-python3-3.9.1-2.fc33 - package-announce - Fedora mailing-lists
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/CCFZMVRQUKCBQIG5F2CBVADK63NFSE4A/[SECURITY] Fedora 32 Update: mingw-python3-3.8.3-8.fc32 - package-announce - Fedora mailing-lists
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/BRHOCQYX3QLDGDQGTWQAUUT2GGIZCZUO/[SECURITY] [DLA 3432-1] python2.7 security update
https://lists.debian.org/debian-lts-announce/2023/05/msg00024.html[SECURITY] [DLA 2919-1] python2.7 security update
https://lists.debian.org/debian-lts-announce/2022/02/msg00013.html[SECURITY] [DLA 2619-1] python3.5 security update
https://lists.debian.org/debian-lts-announce/2021/04/msg00005.htmlcloses bpo-42938: Replace snprintf with Python unicode formatting in ctypes param reprs.
Fix merged in python/cpython PR #24239 on 2021-01-18 — awaiting tagged release
https://github.com/python/cpython/pull/24239Issue 42938: [security][CVE-2021-3177] ctypes double representation BoF - Python tracker
https://bugs.python.org/issue42938Vendor Advisories for CVE-2021-3177(3)
These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.
- RHSA-2022:5235Red Hat Product SecurityMedium
Red Hat Security Advisory: python security update
- RHSA-2021:3252Red Hat Product SecurityMedium
Red Hat Security Advisory: python27 security update
- RHSA-2021:3254Red Hat Product SecurityMedium
Red Hat Security Advisory: rh-python38 security, bug fix, and enhancement update
Patch Availability(11)
| Vendor / Ecosystem | Fixed in / Patch | Released | Source |
|---|---|---|---|
| ubuntu | python3.5-venv (3.5.2-2ubuntu0~16.04.13) @ xenial | 2026-05-26 | ubuntu |
| ubuntu | python2.7-minimal (2.7.12-1ubuntu0~16.04.18) @ xenial | 2026-05-26 | ubuntu |
| ubuntu | python2.7-minimal (2.7.18-1~20.04.1) @ focal | 2026-05-26 | ubuntu |
| ubuntu | python3.9-venv (3.9.5-3ubuntu0~20.04.1+esm2) @ focal | 2026-05-26 | ubuntu |
| ubuntu | python2.7-minimal (2.7.6-8ubuntu0.6+esm10) @ trusty | 2026-05-26 | ubuntu |
| redhat | python-0:2.7.5-92.el7_9 | 2022-06-28 | redhat |
| redhat | rh-python38-python-urllib3-0:1.25.7-7.el7 | 2021-08-24 | redhat |
| redhat | python27-python-pygments-0:1.5-5.el7 | 2021-08-24 | redhat |
| redhat | python27:2.7-8040020210122160212.cdb2db54 | 2021-05-18 | redhat |
| redhat | python38:3.8-8040020210128125034.b1b639b6 | 2021-05-18 | redhat |
| redhat | python3-0:3.6.8-37.el8 | 2021-05-18 | redhat |
Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.
Weakness Classification(1)
MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.
Additional Vendor Advisories
(9)
Vendors that published advisories for this CVE beyond the curated set above. Broader coverage but minimal per-row detail — click through for the original advisory.
- Microsoft MSRCCVE-2021-31772021-01-29
Python 3.x through 3.9.1 has a buffer overflow in PyCArg_repr in _ctypes/callproc.c which may lead to remote code execution in certain Python applications that accept floating-point numbers as untrusted input as demonstrated by a 1e300 argument to c_double.from_param. This occurs because sprintf is used unsafely.
- Red HatRHSA-2021:1633MODERATE2021-01-19
RHSA-2021:1633 — Moderate
- Red HatRHSA-2021:1761MODERATE2021-01-19
RHSA-2021:1761 — Moderate
- Red HatRHSA-2021:1879MODERATE2021-01-19
RHSA-2021:1879 — Moderate
- UbuntuUSN-4754-1MEDIUM
Python vulnerabilities
- UbuntuUSN-4754-3MEDIUM
Python vulnerabilities
- UbuntuUSN-4754-4MEDIUM
Python 2.7 vulnerability
- UbuntuUSN-4754-5MEDIUM
Python vulnerability
- UbuntuUSN-6891-1MEDIUM
Python vulnerabilities
Data Freshness Timeline
(refreshed 12× in last 7d / 45× in last 30d)
Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.
- 2026-07-22 22:47 UTCEG score recompute
- 2026-07-22 14:06 UTCEPSS rescore
- 2026-07-21 15:22 UTCEPSS rescore
- 2026-07-21 15:22 UTCEPSS rescore
- 2026-07-20 17:05 UTCEPSS rescore
- 2026-07-19 14:29 UTCEPSS rescore
- 2026-07-19 03:52 UTCOSV refresh
- 2026-07-19 02:27 UTCEPSS rescore
- 2026-07-18 10:02 UTCEPSS rescore
- 2026-07-18 10:02 UTCEPSS rescore
- 2026-07-16 17:00 UTCEPSS rescore
- 2026-07-16 17:00 UTCEPSS rescore
- 2026-07-15 16:55 UTCEPSS rescore
- 2026-07-15 16:55 UTCEPSS rescore
- 2026-07-15 01:58 UTCEPSS rescore
- 2026-07-13 22:27 UTCEPSS rescore
- 2026-07-13 22:27 UTCEPSS rescore
- 2026-07-13 06:11 UTCEPSS rescore
- 2026-07-13 06:11 UTCEPSS rescore
- 2026-07-12 05:44 UTCEPSS rescore
- 2026-07-11 08:25 UTCEPSS rescore
- 2026-07-11 08:25 UTCEPSS rescore
- 2026-07-09 19:07 UTCEPSS rescore
- 2026-07-07 13:43 UTCEPSS rescore
- 2026-07-06 16:25 UTCEPSS rescore
Show 73 moreShow fewer
- 2026-07-06 16:25 UTCEPSS rescore
- 2026-07-06 02:21 UTCEPSS rescore
- 2026-07-06 02:21 UTCEPSS rescore
- 2026-07-04 06:29 UTCEPSS rescore
- 2026-07-04 06:29 UTCEPSS rescore
- 2026-07-02 16:57 UTCEPSS rescore
- 2026-07-01 15:04 UTCEPSS rescore
- 2026-07-01 10:48 UTCOSV refresh
- 2026-06-29 14:04 UTCEPSS rescore
- 2026-06-28 14:05 UTCEPSS rescore
- 2026-06-28 04:54 UTCEPSS rescore
- 2026-06-28 04:54 UTCEPSS rescore
- 2026-06-27 03:06 UTCEPSS rescore
- 2026-06-27 03:06 UTCEPSS rescore
- 2026-06-25 13:48 UTCEPSS rescore
- 2026-06-25 13:48 UTCEPSS rescore
- 2026-06-24 14:03 UTCEPSS rescore
- 2026-06-24 14:03 UTCEPSS rescore
- 2026-06-23 21:31 UTCEPSS rescore
- 2026-06-23 21:31 UTCEPSS rescore
- 2026-06-22 14:24 UTCEPSS rescore
- 2026-06-21 14:55 UTCEPSS rescore
- 2026-06-21 01:58 UTCEPSS rescore
- 2026-06-21 01:58 UTCEPSS rescore
- 2026-06-18 17:51 UTCEPSS rescore
- 2026-06-18 17:51 UTCEPSS rescore
- 2026-06-17 17:51 UTCEPSS rescore
- 2026-06-17 17:51 UTCEPSS rescore
- 2026-06-17 17:51 UTCEPSS rescore
- 2026-06-16 17:51 UTCEPSS rescore
- 2026-06-16 17:51 UTCEPSS rescore
- 2026-06-15 17:46 UTCEPSS rescore
- 2026-06-14 23:15 UTCEPSS rescore
- 2026-06-14 23:15 UTCEPSS rescore
- 2026-06-13 22:58 UTCEPSS rescore
- 2026-06-13 22:58 UTCEPSS rescore
- 2026-06-13 16:13 UTCOSV refresh
- 2026-06-12 23:10 UTCEPSS rescore
- 2026-06-11 13:58 UTCEPSS rescore
- 2026-06-11 13:58 UTCEPSS rescore
- 2026-06-10 22:16 UTCEPSS rescore
- 2026-06-10 22:16 UTCEPSS rescore
- 2026-06-10 13:20 UTCEPSS rescore
- 2026-06-08 14:15 UTCEPSS rescore
- 2026-06-08 14:15 UTCEPSS rescore
- 2026-06-07 15:23 UTCEPSS rescore
- 2026-06-07 15:23 UTCEPSS rescore
- 2026-06-06 13:46 UTCEPSS rescore
- 2026-06-06 13:46 UTCEPSS rescore
- 2026-06-05 22:45 UTCEPSS rescore
- 2026-06-05 06:09 UTCEPSS rescore
- 2026-06-05 06:09 UTCEPSS rescore
- 2026-06-04 13:10 UTCEPSS rescore
- 2026-06-04 13:10 UTCEPSS rescore
- 2026-06-02 20:11 UTCEPSS rescore
- 2026-06-02 20:11 UTCEPSS rescore
- 2026-06-01 13:50 UTCEPSS rescore
- 2026-06-01 13:50 UTCEPSS rescore
- 2026-05-31 22:29 UTCEPSS rescore
- 2026-05-31 22:29 UTCEPSS rescore
- 2026-05-31 00:15 UTCEPSS rescore
- 2026-05-31 00:15 UTCEPSS rescore
- 2026-05-29 13:42 UTCEPSS rescore
- 2026-05-28 13:43 UTCEPSS rescore
- 2026-05-28 13:43 UTCEPSS rescore
- 2026-05-27 13:39 UTCEPSS rescore
- 2026-05-27 13:39 UTCEPSS rescore
- 2026-05-26 22:01 UTCEG score recompute
- 2026-05-26 22:01 UTCVendor advisory
- 2026-05-26 22:01 UTCGHSA enrichment
- 2026-05-26 07:17 UTCEPSS rescore
- 2026-05-26 07:17 UTCEPSS rescore
- 2026-05-26 07:17 UTCEPSS rescore
Related CVEs(same vendor + same CWE)
Same vendor
10 shownmsrc · redhat
Same CWE
10 shownCWE-120
- CVE-2010-10016EG 10.0CRITICAL
- CVE-2012-10035EG 10.0CRITICAL
- CVE-2009-0948EG 9.8CRITICAL
- CVE-2006-3100EG 9.8CRITICAL
- CVE-2009-5041EG 9.8CRITICAL
- CVE-2010-5333EG 9.8EPSS 97%CRITICAL
- CVE-2013-1331NVD 7.8EG 9.0 KEVEPSS 100%HIGH
- CVE-2013-0641NVD 7.8EG 9.0 KEVEPSS 98%HIGH
- CVE-2010-2572NVD 7.8EG 9.0 KEVEPSS 99%HIGH
- CVE-2007-5659NVD 7.8EG 9.0 KEVEPSS 100%HIGH
Frequently asked(5)
What is CVE-2021-3177?
When was CVE-2021-3177 disclosed?
Is CVE-2021-3177 actively exploited?
What is the CVSS score of CVE-2021-3177?
How do I remediate CVE-2021-3177?
Dependency Blast Radius
Explore the affected products and dependency analysis for CVE-2021-3177
Is Your Infrastructure Affected by CVE-2021-3177?
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.