CVE-2024-8948 json
MicroPython objint.c mpz_as_bytes heap-based overflow
published 2024-09-17 2 y ago modified 2026-06-17 4 mo ago also GHSA-vh3x-525m-jp4r , PYSEC-2024-87 , PYSEC-2024-88 , PYSEC-2024-89 , EUVD-2024-0101
- cvss
- 7.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.0%
- EPSS 1.0% chance of exploitation in 30 days, percentile 62%
- public exploits
- 0
- none known
Summary
A vulnerability was found in MicroPython 1.23.0. It has been rated as critical. Affected by this issue is the function mpz_as_bytes of the file py/objint.c. The manipulation leads to heap-based buffer overflow. The attack may be launched remotely. The exploit has been disclosed to the public and may be used. The patch is identified as 908ab1ceca15ee6fd0ef82ca4cba770a3ec41894. It is recommended to apply a patch to fix this issue. In micropython objint component, converting zero from int to bytes leads to heap buffer-overflow-write at mpz_as_bytes.
Patch / fix
- micropython Debian 14, Debian 13 1.24.0+ds-1
debian advisories DEBIAN-CVE-2024-8948
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2024-8948 updated cvss 7.3
micropython: heap buffer overflow via int_to_bytes
-
Red Hat All currently supported Red Hat productsnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
0.98% chance of exploitation in the next 30 days, higher than 62% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/micropython/micropython/issues/13041 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 6.9 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N |
| CNA | 3.1 | 7.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L |
| CNA | 3.0 | 7.3 | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L |
| CNA | 2.0 | 7.5 | AV:N/AC:L/Au:N/C:P/I:P/A:P |
| CNA | 4.0 | 6.9 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| OSV | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| GitHub | 3.1 | 7.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | micropython-copy | <=3.3.3.post3 all versions |
no fix listed |
| pypi | micropython-io | <=0.1 all versions |
no fix listed |
| pypi | micropython-os | <=0.8 all versions |
no fix listed |
Affected products
- n/a MicroPython
- micropython micropython
Classification
References
-
github.com
/micropython/micropython/commit/908ab1ceca15ee6fd0ef82ca4cba770a3ec41894
patch, web
-
github.com
/micropython/micropython/issues/13041
exploit, issue-tracking, web, third-party-advisory, report, evidence
-
vuldb.com
/?id.277766
vdb-entry, technical-description, web, third-party-advisory
-
vuldb.com
/?ctiid.277766
signature, permissions-required, web
-
vuldb.com
/?submit.409317
third-party-advisory, web
-
nvd.nist.gov
/vuln/detail/CVE-2024-8948
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/micropython-copy/PYSEC-2024-87.yaml
web
-
github.com
/pypa/advisory-database/tree/main/vulns/micropython-io/PYSEC-2024-88.yaml
web
-
github.com
/pypa/advisory-database/tree/main/vulns/micropython-os/PYSEC-2024-89.yaml
web
-
github.com
/advisories/GHSA-vh3x-525m-jp4r
advisory
Sources
- CVE List CVE-2024-8948
- GitHub Advisory GHSA-vh3x-525m-jp4r
- NVD CVE-2024-8948
- OSV PYSEC-2024-87
- OSV PYSEC-2024-89
- OSV PYSEC-2024-88
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.