Skip to main content

radare2-mcp CVE-2026-6942

| EUVDEUVD-2026-25314 CRITICAL
OS Command Injection (CWE-78)
2026-04-23 VulnCheck GHSA-g65f-grqm-9jg5
9.3
CVSS 4.0 · NVD
Share

Severity by source

NVD PRIMARY
9.3 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
9.8 CRITICAL

Unauthenticated JSON-RPC input reaching a shell yields network vector, low complexity, no privileges/UI, and full C/I/A on the host; scope unchanged as the OS is the same authorization context, assuming the interface is network-exposed.

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

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

8
Source Code Evidence Fetched
Jul 24, 2026 - 03:40 vuln.today
Analysis Generated
Jul 24, 2026 - 03:40 vuln.today
PoC Detected
Apr 29, 2026 - 20:16 vuln.today
Public exploit code
Patch released
Apr 29, 2026 - 20:16 nvd
Patch available
Patch available
Apr 23, 2026 - 23:16 EUVD
CVSS changed
Apr 23, 2026 - 21:27 NVD
9.8 (CRITICAL) 9.3 (CRITICAL)
EUVD ID Assigned
Apr 23, 2026 - 21:15 euvd
EUVD-2026-25314
CVE Published
Apr 23, 2026 - 20:58 nvd
CRITICAL 9.3

DescriptionCVE.org

radare2-mcp version 1.6.0 and earlier contains an os command injection vulnerability that allows remote attackers to execute arbitrary commands by bypassing the command filter through shell metacharacters in user-controlled input passed to r2_cmd_str(). Attackers can inject shell metacharacters through the jsonrpc interface parameters to achieve remote code execution on the host running radare2-mcp without requiring authentication.

AnalysisAI

OS command injection in radare2-mcp (the Model Context Protocol server that bridges the radare2 reverse-engineering framework to LLM agents) versions 1.6.0 and earlier lets remote, unauthenticated attackers achieve full remote code execution on the host. Attacker-controlled JSON-RPC parameters flow into r2_cmd_str() where shell metacharacters bypass the command filter, and because the fix re-enables radare2's exec/socket sandbox, the flaw effectively granted attackers direct shell access. Publicly available exploit code exists (reported by VulnCheck, POC referenced in issue #45); it is not listed in CISA KEV and EPSS is modest at 0.27% (51st percentile).

Technical ContextAI

radare2-mcp exposes radare2's command interpreter over a JSON-RPC/MCP interface so AI agents can drive binary analysis. The radare2 command language itself can spawn OS processes (e.g. the '!' shell-escape and related primitives), so any path that lets untrusted input reach the radare2 command string is effectively a shell. The root cause is CWE-78 (OS Command Injection): user-supplied JSON-RPC parameters are concatenated into a command passed to r2_cmd_str(), and the application-level 'command filter' meant to block dangerous commands is defeated by shell metacharacters. The vendor fix in commit 482cde6 does not tighten the string filter alone - it introduces a sandbox_grain setting that enables radare2's native cfg.sandbox with a default grain of 'exec,socket', so process execution and socket creation are blocked at the engine level unless an operator explicitly passes '-g all' to disable the sandbox. The CPE provided (cpe:2.3:a:radareorg:radare2:*) names the radare2 core package, but the actual vulnerable component is the radare2-mcp connector.

RemediationAI

Upgrade radare2-mcp to the patched release corresponding to fix commit 482cde6500009112a8bc0b3fa8d2ef6180581ec0; the EUVD range (0 < 1.6.0) indicates the fix landed in version 1.6.0, but because the reference is a commit rather than an independently confirmed tagged release and the CVE text calls 1.6.0 'and earlier' vulnerable, confirm the exact patched tag with the vendor before relying on a version number. After upgrading, do NOT disable the sandbox: the fix enables radare2's cfg.sandbox with grain 'exec,socket' by default, so avoid passing the new '-g all' flag, which turns the protection off and reintroduces the exposure. As compensating controls where patching is not yet possible, bind the MCP/JSON-RPC interface to localhost or a Unix socket rather than a routable address, place it behind an authenticating proxy, and firewall the listening port so only trusted AI-agent hosts can reach it; the trade-off is that remote agent integrations that legitimately need network access will break. See the VulnCheck advisory (https://www.vulncheck.com/advisories/radare2-mcp-os-command-injection-via-shell-metacharacter-bypass) and issue #45 (https://github.com/radareorg/radare2-mcp/issues/45) for details.

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

CVE-2017-15931 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

CVE-2023-0302 HIGH POC
7.8 Jan 15

Failure to Sanitize Special Elements into a Different Plane (Special Element Injection) in GitHub repository radareorg/r

Share

CVE-2026-6942 vulnerability details – vuln.today

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