Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAnalyst loads untrusted binary plist in radare2
-
DeliveryRuns explicit pFB/pFBj command
-
ExploitUnicode parser underallocates UTF-8 buffer
-
ExecutionJSON encoder reads past allocation
-
ImpactHeap contents leaked in JSON output or process crash
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires local use of radare2 (< 6.2.0) by an analyst who (1) loads attacker-controlled binary property-list data and (2) explicitly issues the pFB or pFBj print command against it - the flaw is not reachable in normal analysis without running these specific commands. Strong limiting factors: no network vector (AV:L), mandatory user interaction (UI:R - the operator must run the command on hostile input), no authentication bypass or privilege gain, and impact bounded to leaking uninitialized/adjacent heap bytes into JSON output or crashing the radare2 process. There is no code execution or write primitive. |
| Impact | This is a genuinely low-priority issue, and the signals are internally consistent rather than conflicting. The vendor CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N, base 3.3) correctly reflects that exploitation is local and requires the victim analyst to actively load untrusted binary property-list data AND explicitly run the pFB/pFBj print commands (UI:R). There is no network vector, no privilege escalation, and no memory corruption/write primitive - CWE-125 here is an out-of-bounds heap READ whose worst outcomes are disclosure of uninitialized/adjacent heap bytes into JSON output (C:L) and a possible crash. No EPSS score, no CISA KEV listing, and no public exploit are present in the input; the two blocks in the fix commit are regression tests, not weaponized POC. The main tension worth flagging: the description explicitly says 'possible process termination,' which supports A:L rather than the vendor's A:N, so availability impact is slightly understated. Overall this is a low-real-risk defect in a specialist analyst tool, not an urgent remediation priority; patch during normal maintenance by upgrading to radare2 6.2.0. |
| Exploit ScenarioDerived | A reverse engineer opens an attacker-supplied binary property-list file in radare2 and runs the pFB or pFBj command to pretty-print/JSON-encode it. Because the Unicode parser underallocates the UTF-8 destination buffer and leaves it without NUL termination, the JSON encoder reads past the allocation, leaking uninitialized or adjacent heap contents into the printed JSON (or crashing the process). No public exploit is identified at time of analysis, and exploitation depends entirely on the analyst voluntarily running the command on hostile data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
radare2 versions prior to 6.2.0 can leak uninitialized or adjacent heap memory into JSON output, and may crash the process, when an analyst runs the explicit pFB or pFBj print command over an attacker-supplied binary property list. The root cause is an under-allocated, non-NUL-terminated UTF-8 conversion buffer in the binary-plist Unicode parser (CWE-125, out-of-bounds read) that the JSON encoder then scans as a C string. All signals agree this is a low-priority local issue: the CVSS vector is AV:L/PR:N/UI:R with only low confidentiality and low availability impact, there is no network vector, no privilege gain, and no write or code-execution primitive; no public exploit code has been identified at time of analysis and the issue is not in CISA KEV. Vendor-released fix: 6.2.0.
RemediationAI
Upgrade radare2 to version 6.2.0 or later; this is the vendor-released fixed version and contains the corrected allocation logic (dst_size = size * 3 + 1) plus the ST32_MAX/3 size guard in parse_string_node(). The specific fix is commit 38d82a949626dba3783f40508bb66179e631fa45 (https://github.com/radareorg/radare2/commit/38d82a949626dba3783f40508bb66179e631fa45), and the release is at https://github.com/radareorg/radare2/releases/tag/6.2.0; the advisory is https://github.com/radareorg/radare2/security/advisories/GHSA-r5cr-f9p6-5pvj. If you cannot upgrade immediately, the most effective and lowest-cost compensating control is procedural: do not run the pFB or pFBj commands against binary property-list files of untrusted provenance, since the vulnerable code path is only reached through those explicit print commands and normal triage/analysis does not trigger it. Where untrusted bplist samples must still be printed, run radare2 inside a sandbox or disposable container with the JSON/print output captured to a scratch file rather than a shared terminal, which bounds any leaked uninitialized heap bytes and contains an unexpected process abort; the trade-off is added workflow friction and reduced throughput on sample triage. Because the impacted memory is process heap rather than filesystem or credential material, there is little benefit to restricting file permissions, but you should avoid piping pFBj output into downstream tooling or logs until the upgrade is applied, so any leaked heap bytes are not persisted. Note that no vendor workaround patch or backport for older branches has been published as of this analysis, and there is no server-side mitigation since exploitation is local and requires the analyst to load the crafted file and issue the command.
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
radare2 is a UNIX-like reverse engineering framework and command-line toolset whose libr/util/bplist.c implements a parser for Apple binary property lists (the 'bplist00' format used by macOS/iOS binaries). The defect lives in parse_string_node(), which handles the UTF-16BE string node type (0x6). The pre-6.2.0 code allocated the destination buffer as malloc(size + 1) and then called r_str_utf16_to_utf8() with that same size as the destination capacity, even though a UTF-16 string of size code units can expand to up to three UTF-8 bytes per unit for non-BMP/surrogate content. The conversion was therefore checked against the wrong bound and the result was not guaranteed to be NUL-terminated. Because the JSON encoder downstream treats the converted bytes as a NUL-terminated C string (r_str_utf8.../json output for pFBj), it can keep reading past the allocation, disclosing uninitialized heap contents or adjacent heap data into the JSON output and possibly terminating the process. CWE-125 (Out-of-bounds Read) is the correct classification: this is a read-only overrun with no write primitive. The upstream fix adds a size guard (size > ST32_MAX / 3 is rejected), computes src_size = size * 2 and dst_size = size * 3 + 1, allocates dst_size, passes the expanded sizes to r_str_utf16_to_utf8(), and checks for a negative return, with a regression test added to test/db/cmd/cmd_print. Affected CPE: cpe:2.3:a:radareorg:radare2:*:*:*:*:*:*:*:* (all versions before 6.2.0).
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:L/I:N/A:H
Local tool that requires the analyst to run pFB/pFBj on untrusted data (AV:L, UI:R); over-read leaks limited heap into JSON (C:L) and can crash the process (A:L), no integrity impact.
AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
Lifecycle Timeline
3DescriptionNVD
radare2 is a UNIX-like reverse engineering framework and command-line toolset. Prior to 6.2.0, radare2's binary property-list Unicode parser was vulnerable because the binary-property-list Unicode parser underallocated an uninitialized UTF-8 destination and did not guarantee NUL termination. The vulnerability is triggered by running the explicit pFB or pFBj commands on untrusted binary property-list data. The json encoder treated the converted data as a nul-terminated c string and could continue reading beyond the allocation. This can cause disclosure of uninitialized or adjacent heap contents in JSON output and possible process termination. 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
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.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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 weakness CWE-125 – Out-of-bounds Read
View allSame technique Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: Low| Product | Status |
|---|---|
| openSUSE Leap 16.0 | Fixed |
EUVD-2026-84470
NVD
CVE.org
EPSS
GitHub
Exploit-DB