Skip to main content

radare2 EUVDEUVD-2026-84503

| CVE-2026-81878 MEDIUM
Integer Overflow or Wraparound (CWE-190)
2026-09-22 GitHub_M
5.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft .pyc with 0xffffffff marshal string length
  2. Delivery
    Deliver malicious sample to analyst
  3. Exploit
    Analyst opens file in r2/rabin2
  4. Execution
    Integer overflow wraps malloc to zero
  5. Persist
    Out-of-bounds heap write corrupts memory
  6. Impact
    Tool crash / denial of service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an analyst to open or inspect a crafted CPython bytecode .pyc file through radare2 (r2) or rabin2 on a local system - the vulnerable code path is the pyc marshal parser in libr/bin/format/pyc/marshal.c. The specific trigger is a marshal string-length field of 0xffffffff, which wraps the size-plus-one heap allocation to zero. Limiting factors: attack is LOCAL (AV:L), requires user interaction (UI:R) to load the attacker-supplied file, no authentication is involved, and impact is limited to heap corruption/denial of service against the analysis tool itself; arbitrary code execution is not demonstrated. Only environments where untrusted .pyc samples are opened in radare2/rabin2 (malware analysis, CTF, RE workflows) are realistically at risk.

Impact

This is a genuinely low-priority issue despite the alarmist 'RCE' tag. The CVSS 3.1 base score of 5.5 (MEDIUM) is driven entirely by the AV:L/UI:R/A:H combination - the attack vector is LOCAL and requires user interaction: an analyst must actively open or inspect a crafted .pyc file through r2 or rabin2. There is no network exposure, no autonomous exploitation, and the confirmed impact is availability-only (C:N/I:N/A:H). The description explicitly states arbitrary code execution is theoretically possible but has NOT been demonstrated, so the memory-corruption-to-RCE path is speculative. No EPSS score, no CISA KEV listing, and no public POC were provided - this is a vendor/researcher-reported parser hardening fix, not an actively-exploited threat. The signals are internally consistent (local vector matches the file-parsing trigger); no conflicts to flag. Real-world risk is confined to reverse engineers who load untrusted .pyc samples, and even then the worst reliably-achievable outcome is a crash of the analysis tool.

Exploit ScenarioDerived

An attacker distributes a malicious Python .pyc sample (e.g. as part of a malware package under analysis) whose CPython marshal string-length field is set to 0xffffffff. When a reverse engineer opens or inspects it with r2 or rabin2, the length-plus-one allocation wraps to zero and the byte reader writes attacker-controlled data past the undersized heap buffer, corrupting the heap and crashing (or potentially, though unproven, executing code within) the analyst's tool. No public exploit code was identified at time of analysis; exploitation requires the analyst to open the file locally (UI:R).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 22, 2026

Heap memory corruption and denial of service in radare2 versions prior to 6.2.0 occur when the CPython .pyc marshal parser processes a crafted bytecode file that declares a string length of 0xffffffff, wrapping the size-plus-one allocation to zero before attacker-controlled data and fill bytes are written past the heap buffer. Exploitation is local and requires user interaction - an analyst must open or inspect the malicious .pyc with r2 or rabin2 - and no privileges are needed per the CVSS vector (AV:L/PR:N/UI:R), with impact confined to corrupting or crashing the analysis process. Arbitrary code execution is possible in principle but has not been demonstrated, no public exploit code has been identified at time of analysis, and the 5.5 CVSS score reflects a genuinely low-priority issue for most environments. Only workflows that routinely open untrusted .pyc files (malware analysis, CTF, reverse-engineering) are realistically at risk.

RemediationAI

Upgrade radare2 to version 6.2.0 or later; this is the vendor-released patch and it is available via the upstream release at https://github.com/radareorg/radare2/releases/tag/6.2.0, with the code change documented in pull request 26177 and commit 6727454b666b28c33837b219a5f91136461357c0, and the security advisory at https://github.com/radareorg/radare2/security/advisories/GHSA-9phv-v2w8-56j3. No vendor workaround is described, so compensating controls are operational: avoid opening or inspecting untrusted .pyc samples with r2 or rabin2 until the update is applied, and when analysis is unavoidable, run the tools inside a sandboxed, low-privilege container or VM with resource limits so heap corruption stays confined to the analysis process - at the cost of reduced visibility if the container is compromised. Environments that do not analyze Python bytecode can simply refrain from feeding .pyc files to radare2, and disabling or skipping the pyc marshal plugin will fully remove exposure but blocks inspection of Python bytecode samples altogether.

Affected VersionsENISA

radare2 < 6.2.0

Affected Packages

euvd radare2 fix: 6.2.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

radare2 is a UNIX-like reverse engineering framework whose binary parsing engine lives in libr/bin, and the affected component is the CPython bytecode (.pyc) marshal deserializer in libr/bin/format/pyc/marshal.c. CPython's marshal format encodes objects such as strings with a 32-bit length prefix; the parser read that length and performed malloc(n + 1) to hold the data plus a NUL terminator, without rejecting values that overflow the addition. A supplied length of 0xffffffff wraps the 32-bit allocation size to zero, so the subsequent common byte reader copies attacker-controlled data and fill bytes past the undersized heap buffer, producing heap corruption and crashes - a classic CWE-190 integer overflow feeding an out-of-bounds write. The upstream fix added explicit 'size >= ST32_MAX' rejection in the marshal readers (including the long and complex object paths) and cast the allocation sizes to ut32 so the addition cannot wrap. The CPE cpe:2.3:a:radareorg:radare2:*:*:*:*:*:*:*:* maps the issue to all radare2 releases before 6.2.0, and ENISA EUVD-2026-84503 independently records the same affected range.

Know when Radare2 gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.5 MEDIUM
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
vuln.today AI 5.5 MEDIUM

Local file-parsing flaw needing an analyst to open a crafted .pyc (AV:L, UI:R), no privileges required; confirmed impact is a heap-corruption crash so A:H with C:N/I:N since code execution is unproven.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

1
Patch available
Sep 22, 2026 - 16:20 EUVD

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Low
niche open-source reverse-engineering CLI, used by security analysts, no broad enterprise footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2023-46570 CRITICAL POC
9.8 Oct 28

An out-of-bounds read in radare2 v.5.8.9 and before exists in the print_insn32 function of libr/arch/p/nds32/nds32-dis.h

CVE-2023-46569 CRITICAL POC
9.8 Oct 28

An out-of-bounds read in radare2 v.5.8.9 and before exists in the print_insn32_fpu function of libr/arch/p/nds32/nds32-d

CVE-2023-4322 CRITICAL POC
9.8 Aug 14

Heap-based Buffer Overflow in GitHub repository radareorg/radare2 prior to 5.9.0. Rated critical severity (CVSS 9.8), th

CVE-2026-6942 CRITICAL POC
9.3 Apr 23

OS command injection in radare2-mcp (the Model Context Protocol server that bridges the radare2 reverse-engineering fram

CVE-2022-1899 CRITICAL POC
9.1 May 26

Out-of-bounds Read in GitHub repository radareorg/radare2 prior to 5.7.0. Rated critical severity (CVSS 9.1), this vulne

CVE-2022-1297 CRITICAL POC
9.1 Apr 11

Out-of-bounds Read in r_bin_ne_get_entrypoints function in GitHub repository radareorg/radare2 prior to 5.6.8. Rated cri

CVE-2022-1296 CRITICAL POC
9.1 Apr 11

Out-of-bounds read in `r_bin_ne_get_relocs` function in GitHub repository radareorg/radare2 prior to 5.6.8. Rated critic

CVE-2023-5686 HIGH POC
8.8 Oct 20

Heap-based Buffer Overflow in GitHub repository radareorg/radare2 prior to 5.9.0. Rated high severity (CVSS 8.8), this v

CVE-2026-40499 HIGH POC
8.4 Apr 15

Command injection in radare2's PDB parser (versions <6.1.4) enables arbitrary command execution when analysts process ma

CVE-2026-40517 HIGH POC
8.4 Apr 22

Command injection in radare2 PDB parser (versions before 6.1.4) enables arbitrary OS command execution when users analyz

CVE-2017-16357 HIGH POC
7.8 Nov 01

In radare 2.0.1, a memory corruption vulnerability exists in store_versioninfo_gnu_verdef() and store_versioninfo_gnu_ve

CVE-2017-15932 HIGH POC
7.8 Oct 27

In radare2 2.0.1, an integer exception (negative number leading to an invalid memory access) exists in store_versioninfo

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
openSUSE Leap 16.0 Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy