Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft NE file with self-referencing reloc
-
DeliveryDeliver sample to analyst
-
ExploitAnalyst opens file in radare2
-
ExecutionParser loops without cycle detection
-
ImpactCPU/memory exhaustion denial of service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a victim to open an attacker-supplied, crafted NE (New Executable) file in radare2 prior to version 6.2.0; the malicious file must contain an in-bounds relocation entry that points back to itself rather than terminating at 0xffff, causing the NE relocation fixup-chain parser to loop without an iteration limit or cycle detection. Limiting factors: this is local-only (AV:L) and requires user interaction (UI:R) - there is no remote or network-triggered path - and impact is confined to denial of service (CPU/memory exhaustion) with no confidentiality or integrity effect. It is patched in 6.2.0. |
| Impact | This is a genuine but low-urgency issue. The CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H, base 5.5) correctly frames it as a local, user-interaction-gated denial of service with no confidentiality or integrity impact - an attacker cannot reach the vulnerable NE relocation parser remotely; a user must actively open a crafted NE executable in radare2. No EPSS score, no CISA KEV listing, and no public exploit code are present in the provided intelligence, so exploitation status is 'no public exploit identified at time of analysis.' The signals are internally consistent: A:H reflects the unbounded CPU/memory consumption (CWE-770), while C:N/I:N/A:H matches a pure resource-exhaustion loop with no memory corruption or code execution. There is no conflict between vector and description - both point to local, victim-triggered DoS. Realistically this is a stability/robustness bug in an analysis tool rather than an attacker-priority target; the main risk is analysts detonating hostile samples in radare2 as part of routine malware triage, which is a plausible but self-limiting scenario. Fix availability (6.2.0) is well-corroborated by the vendor advisory, issue, PR, and commit. |
| Exploit ScenarioDerived | An attacker crafts a malicious NE executable whose in-bounds relocation entry points back to itself instead of terminating at 0xffff, then delivers it to a reverse engineer (e.g., as a suspicious sample for triage). When the analyst opens the file in radare2 prior to 6.2.0, the fixup-chain parser loops indefinitely, allocating a new relocation object on every iteration and consuming CPU and memory until the process hangs or is killed. No public proof-of-concept is referenced, and exploitation requires the victim to open the file locally (AV:L/UI:R). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Denial of service in radare2 prior to 6.2.0 lets a crafted NE (New Executable) binary hang the tool indefinitely by driving the relocation fixup-chain parser into an unbounded loop that allocates a fresh relocation object on every pass, exhausting CPU and memory until the process is killed or the user aborts it. The attack is local and requires the victim to open the attacker-supplied file (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H), with availability impact only and no confidentiality or integrity effect, so this is a genuine but low-urgency issue. No public exploit code was identified at time of analysis and the flaw is fixed in version 6.2.0.
RemediationAI
Upgrade to the vendor-released patch, radare2 6.2.0 or later, delivered via PR #26192 and commit 93d794caa7c2f08413106255d49546e544c1f9f0, documented in the advisory at https://github.com/radareorg/radare2/security/advisories/GHSA-43wr-4j49-rcxj and the release at https://github.com/radareorg/radare2/releases/tag/6.2.0. Until the upgrade is deployed, the available mitigations are procedural and resource-bounded rather than code-level: avoid running radare2 or rabin2 against untrusted NE binaries, and when untrusted samples must be analyzed, confine the process with hard CPU and memory caps such as ulimit -v/-t, cgroup v2 memory.max and cpu.max, or a container started with --memory and --cpus, plus a watchdog timeout, so a runaway fixup chain is terminated instead of starving the host. The trade-off is that legitimate very large binaries may also trip those limits and fail to analyze, and none of these controls removes the underlying unbounded loop, so they are stopgaps only; because the vector is local and requires the victim to open the crafted file, limiting who opens untrusted executables in radare2 is itself an effective interim measure.
Affected VersionsENISA
Affected Packages
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
The bug lives in radare2's New Executable (NE) parser, libr/bin/format/ne/ne.c (r_bin_ne_get_relocs), which handles 16-bit Windows/OS2 NE binaries. NE relocation tables use fixup chains: each relocation entry stores an offset to the next entry, and 0xFFFF terminates the chain. The vulnerable code walked this chain with a do/while (offset != 0xFFFF) loop that cloned the current RBinReloc into a new object on every iteration and appended it to the relocation list. There was no iteration cap and no visited-offset/cycle detection, so a crafted file containing an in-bounds relocation entry whose next-offset points back to itself never reaches the 0xFFFF terminator and loops forever, allocating another relocation object each pass. That is CWE-770 (Allocation of Resources Without Limits or Throttling), producing sustained CPU and memory consumption rather than memory corruption, so the practical outcome is a hang/OOM kill. The upstream fix (PR #26192, commit 93d794caa7c2f08413106255d49546e544c1f9f0) replaces the do/while with a for loop bounded at 0xFFFF iterations and only clones/appends a new relocation when the offset is not the terminator, capping both chain traversal and allocation growth.
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
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Local file must be opened by the victim (AV:L, UI:R); no auth needed to craft the file (PR:N); unbounded loop yields availability-only impact (A:H, C:N/I:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
radare2 is a UNIX-like reverse engineering framework and command-line toolset. Prior to 6.2.0, radare2's NE relocation fixup-chain parser was vulnerable because the NE relocation parser followed fixup chains without an active iteration limit or cycle detection. The vulnerability is triggered by opening a crafted NE executable whose in-bounds relocation entry points back to itself instead of reaching 0xffff. The parser repeatedly processed the same relocation and allocated another relocation object on each iteration. This can cause denial of service through continuous CPU and memory consumption. This issue is fixed in version 6.2.0.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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
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
Heap-based Buffer Overflow in GitHub repository radareorg/radare2 prior to 5.9.0. Rated critical severity (CVSS 9.8), th
OS command injection in radare2-mcp (the Model Context Protocol server that bridges the radare2 reverse-engineering fram
Out-of-bounds Read in GitHub repository radareorg/radare2 prior to 5.7.0. Rated critical severity (CVSS 9.1), this vulne
Out-of-bounds Read in r_bin_ne_get_entrypoints function in GitHub repository radareorg/radare2 prior to 5.6.8. Rated cri
Out-of-bounds read in `r_bin_ne_get_relocs` function in GitHub repository radareorg/radare2 prior to 5.6.8. Rated critic
Heap-based Buffer Overflow in GitHub repository radareorg/radare2 prior to 5.9.0. Rated high severity (CVSS 8.8), this v
Command injection in radare2's PDB parser (versions <6.1.4) enables arbitrary command execution when analysts process ma
Command injection in radare2 PDB parser (versions before 6.1.4) enables arbitrary OS command execution when users analyz
In radare 2.0.1, a memory corruption vulnerability exists in store_versioninfo_gnu_verdef() and store_versioninfo_gnu_ve
In radare2 2.0.1, an integer exception (negative number leading to an invalid memory access) exists in store_versioninfo
Same technique Denial Of Service
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| openSUSE Leap 16.0 | Fixed |
EUVD-2026-84471
NVD
CVE.org
EPSS
GitHub
Exploit-DB