CVE-2026-81878
Received Received - Intake

Heap Overflow in radare2 CPython .pyc Parser

Vulnerability report for CVE-2026-81878, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-22

Last updated on: 2026-09-22

Assigner: GitHub, Inc.

Description

radare2 is a UNIX-like reverse engineering framework and command-line toolset. Prior to 6.2.0, radare2's CPython bytecode .pyc marshal parser was vulnerable because the CPython marshal readers accepted a 32-bit string length without rejecting values that overflow the size-plus-one allocation. The vulnerability is triggered by opening or inspecting a crafted .pyc file through r2 or rabin2. A length of 0xffffffff wrapped the allocation to zero before the common byte reader wrote attacker-controlled data and fill bytes beyond the heap allocation. This can cause heap memory corruption and denial of service; arbitrary code execution is possible but has not been demonstrated. This issue is fixed in version 6.2.0.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-22
Last Modified
2026-09-22
Generated
2026-09-22
AI Q&A
2026-09-22
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 3 associated CPEs
Vendor Product Version / Range
radareorg radare2 to 6.2.0 (exc)
radareorg radare2 From 6.1.9 (inc)
radareorg radare2 6.2.0

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-787 The product writes data past the end, or before the beginning, of the intended buffer.
CWE-190 The product performs a calculation that can produce an integer overflow or wraparound when the logic assumes that the resulting value will always be larger than the original value. This occurs when an integer value is incremented to a value that is too large to store in the associated representation. When this occurs, the value may become a very small or negative number.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-81878 is a heap out-of-bounds write vulnerability in radare2's CPython bytecode .pyc marshal parser. It occurs when parsing crafted .pyc files with r2 or rabin2. A 32-bit size overflow (0xFFFFFFFF) causes a zero-byte allocation, leading to a ~4GB memset of 0xff into the buffer. This results in memory corruption, crashes, and potential arbitrary code execution.

Detection Guidance

To detect this vulnerability, check the installed version of radare2 using the command 'r2 -v' or 'rabin2 -v'. If the version is below 6.2.0, the system is vulnerable. Additionally, inspect any .pyc files opened with radare2 or rabin2 for crashes or memory corruption errors.

Impact Analysis

This vulnerability can cause denial of service by crashing radare2 or rabin2 when opening a malicious .pyc file. It may also lead to arbitrary code execution, though this has not been confirmed. Users should avoid opening untrusted .pyc files with affected versions (<=6.1.8).

Compliance Impact

This vulnerability primarily impacts system integrity and availability by enabling heap memory corruption, crashes, or potential arbitrary code execution when processing crafted .pyc files. While not directly tied to data protection standards like GDPR or HIPAA, such vulnerabilities could indirectly affect compliance by compromising the confidentiality, integrity, or availability of sensitive data processed by affected systems. Organizations handling regulated data should assess exposure if using vulnerable radare2 versions for reverse engineering or analysis tasks.

Mitigation Strategies

Upgrade radare2 to version 6.2.0 or later immediately. Avoid opening untrusted .pyc files with affected versions. If upgrading is not possible, restrict access to radare2 and rabin2 tools to trusted users only.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-81878. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart