Skip to main content

radare2 EUVDEUVD-2026-84470

| CVE-2026-81882 MEDIUM
Out-of-bounds Read (CWE-125)
2026-09-22 GitHub_M
6.1
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Analyst loads untrusted binary plist in radare2
  2. Delivery
    Runs explicit pFB/pFBj command
  3. Exploit
    Unicode parser underallocates UTF-8 buffer
  4. Execution
    JSON encoder reads past allocation
  5. Impact
    Heap 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.

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

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

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 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

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

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.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorNVD

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

Lifecycle Timeline

3
Severity Changed
Sep 25, 2026 - 16:52 NVD
LOW MEDIUM
CVSS changed
Sep 25, 2026 - 16:52 NVD
3.3 (LOW) 6.1 (MEDIUM)
Patch available
Sep 22, 2026 - 16:20 EUVD

DescriptionNVD

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

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Low
Popular but niche reverse-engineering toolkit, run on analyst workstations only
Data Quality
5 sources
Confidence: Medium

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· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Low

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
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.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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: Low
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