Skip to main content

radare2 CVE-2026-6941

| EUVDEUVD-2026-25302 MEDIUM
Improper Link Resolution Before File Access (CWE-59)
2026-04-23 VulnCheck GHSA-2x93-pf6j-8c9x
6.9
CVSS 4.0 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Craft .zrp archive with symlinked notes.txt
  2. Delivery
    Deliver archive to target via social engineering or repository
  3. Exploit
    Victim executes Pzi import command
  4. Execution
    radare2 extracts archive without symlink validation
  5. Persist
    Note operation follows symlink past dir.projects boundary
  6. Impact
    Read or overwrite arbitrary file as process user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
Exploitation Conditions

Exploitation requires the victim to actively import a malicious .zrp archive using radare2's project import command (Pzi) and then trigger a note operation (Pn). The attack vector is local (AV:L per CVSS 4.0): the crafted .zrp file must already exist on the victim's local filesystem before import, meaning delivery relies on social engineering, supply chain compromise of a shared archive repository, or an existing file-write primitive. User interaction is required (UI:P): the victim must deliberately execute the import command. No non-default configuration is needed - any radare2 session with the project system active and a configured dir.projects path is vulnerable when a symlinked archive is imported. Limiting factors: the attacker has no direct remote code path; files accessible via the symlink are constrained to what the radare2 process user can access on the local system; and the attacker cannot know in advance whether specific target paths exist unless they have prior knowledge of the victim's system layout.

Impact

The CVSS 4.0 score of 6.9 with AV:L and UI:P correctly characterizes this as a moderate-severity, socially-engineered local attack. The EPSS score of 0.01% at the 1st percentile reflects near-zero probability of opportunistic automated exploitation, consistent with SSVC's 'Automatable: no' designation - each attack requires a bespoke malicious archive and deliberate victim action. The VI:H integrity impact is the most serious signal: a successful attack can overwrite arbitrary files on the victim's system (limited only by the process owner's filesystem permissions), while VC:L indicates only limited file read capability. The POC is confirmed public via the GitHub PR #25831 test suite, which includes a fully working exploit harness, elevating practical exploitability above what EPSS alone suggests. However, KEV absence means no confirmed in-the-wild abuse. The realistic threat is targeted: reverse engineers and malware analysts routinely share project archives, making this community a plausible social engineering target. CVSS and SSVC signals are internally consistent - no conflicting data identified.

Exploit ScenarioDerived

An attacker crafts a .zrp archive containing a notes.txt that is a symbolic link targeting a sensitive file outside the project directory, such as /home/analyst/.ssh/authorized_keys or /etc/passwd, then distributes this archive via a reverse-engineering forum, GitHub repository, or direct message to a security researcher. When the victim imports the archive with the Pzi command and accesses notes with Pn, radare2 follows the symlink and reads or overwrites the target file. A complete working proof-of-concept for this scenario is publicly available in the test suite added by PR #25831, including the exact ln -sf and zip -y commands to construct the malicious archive.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 24, 2026

Path traversal in radare2's project notes handling exposes arbitrary filesystem files to read and overwrite when a user imports a crafted .zrp archive. All radare2 releases prior to 6.1.4 are vulnerable via the r_core_project_notes_file() function in libr/core/project.c, which failed to detect symlinks within imported project archives before performing note operations. An attacker who can deliver and persuade a victim to import a malicious .zrp file can escape the configured dir.projects directory entirely, gaining low confidentiality and high integrity impact on the host filesystem. No active exploitation is confirmed in CISA KEV, but a working proof-of-concept is publicly available in the referenced GitHub PR test suite.

RemediationAI

The primary fix is upgrading to radare2 6.1.4 or later, which patches libr/core/project.c to call r_file_readlink() and discard the notes path if it resolves to a symlink, preventing link following outside the project directory (PR #25831, commit 4bcdee725; advisory: https://www.vulncheck.com/advisories/radare2-project-notes-path-traversal-via-symlink). If immediate upgrade is not possible, the most effective compensating control is to refuse to import .zrp project archives from untrusted or unverified sources - this eliminates the delivery vector entirely since UI:P is required for exploitation. Users who must import external archives can manually inspect them first using unzip -v archive.zrp to identify symlinked entries (symlinks are indicated by the file attributes column); any archive containing a symlinked notes.txt should be rejected. There are no functional side effects reported for the patch. Note that the upstream fix is available as a PR/commit against the radare2 main branch; the released patched version (6.1.4) is identified by EUVD but has not been independently verified beyond the EUVD affected-version range.

Affected VersionsENISA

radare2 0 <6.1.4

Affected Packages

euvd radare2 fix: 6.1.4

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 whose project system uses .zrp archives - standard ZIP files - to package and share analysis sessions. The r_core_project_notes_file() function in libr/core/project.c constructs the path to a project's notes.txt file within the dir.projects root directory. Prior to 6.1.4, this function did not invoke r_file_readlink() to detect whether the extracted notes.txt entry was a symbolic link; if it was, subsequent note read and write operations followed the symlink transparently, bypassing directory confinement checks. This maps precisely to CWE-59 (Improper Link Resolution Before File Access, 'Link Following'): the application trusted the filename without verifying the resolved path remained within the intended boundary. The affected CPE is cpe:2.3:a:radareorg:radare2:*:*:*:*:*:*:*:*, covering all versions of radare2 up to but not including 6.1.4.

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

NVD PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N
vuln.today AI 6.6 MEDIUM

AV:L because the malicious archive must be present locally; UI:R because the victim must actively import it; I:H reflects arbitrary file write outside project root; C:L for limited read via symlink.

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

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

5
PoC Detected
Apr 27, 2026 - 14:57 vuln.today
Public exploit code
Patch released
Apr 27, 2026 - 14:57 nvd
Patch available
Patch available
Apr 23, 2026 - 22:16 EUVD
CVSS changed
Apr 23, 2026 - 21:27 NVD
6.6 (MEDIUM) 6.9 (MEDIUM)
CVE Published
Apr 23, 2026 - 20:39 nvd
MEDIUM 6.9

DescriptionCVE.org

radare2 prior to 6.1.4 contains a path traversal vulnerability in its project notes handling that allows attackers to read or write files outside the configured project directory by importing a malicious .zrp archive containing a symlinked notes.txt file. Attackers can craft a .zrp archive with a symlinked notes.txt that bypasses directory confinement checks, allowing note operations to follow the symlink and access arbitrary files outside the dir.projects root directory.

Threat Intelligence Overview

EPSS Score
0.0%
Top 99% exploitable
Prevalence
Low
niche reverse engineering tool used primarily by security researchers
Exploit
POC
Public exploit code exists
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 Yes
EPSS 0.0%
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
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

54
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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

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