Every CVE Search/ Get API key

CVE-2026-81878

radare2: Integer overflow causes heap out-of-bounds write in radare2 PYC parser

5.5 Medium

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.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
None
User interaction
Required

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.20%Unchanged since Sep 23, 2026
90%50%10%1%

What each source reports

CVE List Score used 5.5

radare2: Integer overflow causes heap out-of-bounds write in radare2 PYC parser

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.

Record
CVE-2026-81878
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Weakness
CWE-190, CWE-787
Updated
2026-11-02
EUVDEUVD-2026-84503 5.5

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.

Record
EUVD-2026-84503
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Updated
2026-11-02
NVD 5.5

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.

Record
CVE-2026-81878
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Weakness
CWE-190, CWE-787
Updated
2026-11-02
OSV 5.5

radare2: Integer overflow causes heap out-of-bounds write in radare2 PYC parser

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.

Record
CVE-2026-81878
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Weakness
CWE-190, CWE-787
Updated
2026-11-02
OSVUBUNTU-CVE-2026-81878 5.5

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.

Record
UBUNTU-CVE-2026-81878
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVopenSUSE-SU-2026:21988-1 No score

Security update for radare2

This update for radare2 fixes the following issues:

Changes in radare2:

  • Update to version 6.2.2:

    • Analysis: new JNI plugin with typed interface tables, arm64 Swift float calling conventions, DWARF prototype linking, jump-table and switch-case fixes
    • Core: fix RAnalOp leaks in disasm/diff/debug loops, aoj memory use, partial-read handling, fp variable recovery
    • Bundle sdb 2.5.2 (upstream pin): rename shlib to libsdb2_5_2
    • Details can be found here: https://github.com/radareorg/radare2/releases/tag/6.2.2
  • Security issues fixed:

    • CVE-2026-81886: Validate dmp64 page counts against dump size (boo#1282346).
    • CVE-2026-81885: Fix infinite loop in the NE fixup parser (boo#1282345).
    • CVE-2026-81884: Validate Mach-O LC_DATA_IN_CODE ranges (boo#1282344).
    • CVE-2026-81883: Fix Lua function parser OOB reads (boo#1282343).
    • CVE-2026-81882: Fix bplist Unicode string conversion (boo#1282342).
    • CVE-2026-81881: Fix Swift Mach-O field metadata bounds check (boo#1282341).
    • CVE-2026-81880: Decode PEF relocs lazily, add more bounds and overflow checks (boo#1282340).
    • CVE-2026-81879: Fix oobread in ELF PN_XNUM phdr count handling (boo#1282339).
    • CVE-2026-81878: Fix heap write overflow in Python loader (boo#1282338).
    • CVE-2026-14788: Denial of Service via use-after-free in r_core_bin_load function (boo#1270453).
    • CVE-2026-14761: Denial of service via integer overflow in string manipulation functions (boo#1270452).
    • CVE-2026-14760: Denial of Service via local use-after-free vulnerability (boo#1270450).
    • CVE-2026-14759: Denial of Service via heap-based buffer overflow (boo#1270449).
    • CVE-2026-14758: Denial of Service via integer overflow in hexpairs parser (boo#1270447).
    • CVE-2026-14757: Integer overflow allows local impact (boo#1270445).
    • CVE-2026-40527: Command injection vulnerability in the afsv/afsvj (boo#1262336).
    • CVE-2026-4174: Missing validation against an upper limit when allocating memory in the Mach-O file parser can lead to excessive resource consumption (boo#1259722).
  • Security issue fixed with the previous release:

    • CVE-2026-41015: Configured on UNIX without SSL, allows command injection via a PDB name to rabin2 (boo#1262190).
    • CVE-2026-40517: Crafted PDB file with newline characters in symbol names can allow to inject arbitrary commands (boo#1262680).
    • CVE-2026-8695: UAFs in the gdb remote protocol ##crash (boo#1265403).
Record
openSUSE-SU-2026:21988-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
radare2
Ubuntu:16.04:LTS
All versions, plus listed versions
0.9.6-3.1ubuntu1
None known
radare2
Ubuntu:Pro:18.04:LTS
All versions, plus listed versions
1.6.0+dfsg-12.0.0+dfsg-12.1.0+dfsg-12.3.0+dfsg-12.3.0+dfsg-22.3.0+dfsg-2ubuntu0.1~esm1
None known
radare2
Ubuntu:Pro:20.04:LTS
All versions, plus listed versions
3.2.1+dfsg-5build14.0.0+dfsg-14.2.1+dfsg-14.2.1+dfsg-24.2.1+dfsg-2ubuntu0.1~esm1
None known
radare2
Ubuntu:Pro:24.04:LTS
All versions, plus listed versions
5.5.0+dfsg-1ubuntu15.5.0+dfsg-1.1ubuntu25.5.0+dfsg-1.1ubuntu35.5.0+dfsg-1.1ubuntu3+esm1
None known
radare2
Ubuntu:26.10
All versions, plus listed versions
6.0.7+ds-16.1.6+ds-26.1.6+ds-36.1.8+ds-1
None known
radare2
Ubuntu:26.04:LTS
All versions, plus listed versions
5.9.8+dfsg-26.0.4+dfsg-16.0.7+ds-1
None known
radare2
openSUSE:Leap 16.0
From an advisory covering 20 CVEs
before 6.2.2-bp160.1.1
6.2.2-bp160.1.1

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-81878 is a medium vulnerability (CVSS 5.5) in Radare Radare2, published September 22, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.20%, the 10th percentile. No source names a fixed version.

References

Show 43 moreShow less
MoveEnter Open