Severity by source
CVSS:4.0/AV:L/AC:H/AT:N/PR:N/UI:A/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
Local file delivery (AV:L) with social engineering dependency (AC:H); no privileges needed to craft malicious project (PR:N); victim must actively open project file (UI:R); full code execution impact on the vulnerable system only (S:U, C:H/I:H/A:H).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.org
Ghidra contains an arbitrary code execution vulnerability in the Swift demangler analyzer that allows an attacker to execute arbitrary binaries by supplying a malicious Ghidra project with a crafted Swift tool directory path. When a victim opens the attacker-supplied project, SwiftDemanglerAnalyzer restores the persisted Swift binary directory from project state and SwiftNativeDemangler executes the resolved binary without integrity or signature verification, causing attacker-controlled executables to run under the Ghidra process user with no prompt or confirmation.
AnalysisAI
Arbitrary code execution in the NSA's Ghidra reverse engineering framework allows an attacker who can deliver a malicious project file to execute arbitrary binaries as the victim's OS user when the victim opens the project. The SwiftDemanglerAnalyzer restores a user-supplied Swift binary directory path persisted in project state and passes it directly to SwiftNativeDemangler, which executes the resolved binary without any integrity or signature check - a textbook CWE-427 uncontrolled search path element. No public exploit has been identified at time of analysis and no CISA KEV listing exists, but the attack is fully described in a VulnCheck advisory and the upstream patch confirms the vulnerability mechanism.
Technical ContextAI
Ghidra (CPE: cpe:2.3:a:national_security_agency:ghidra:*:*:*:*:*:*:*:*) is an open-source binary reverse engineering suite developed by the NSA. Its Swift demangler feature (SwiftDemanglerAnalyzer / SwiftNativeDemangler Java classes) previously accepted an optional file-system path - OPTION_NAME_SWIFT_DIR - specifying the directory containing the native Swift toolchain binary used for demangling Swift symbols. This path was serialized into the Ghidra project's persistent state (the GZF/GAR project archive). On project load, the analyzer would deserialize and restore this path, then execute whatever binary resided there. CWE-427 (Uncontrolled Search Path Element) is the root cause: the analyzer trusted an externally controlled path without any verification that the binary was the legitimate Swift demangler, had a valid code signature, or matched an expected hash. The fix (commit c03a70d) eliminates the configurable directory entirely, hardcoding PATH-only resolution for the Swift binary.
RemediationAI
Apply the upstream fix at commit c03a70d (https://github.com/NationalSecurityAgency/ghidra/commit/c03a70d), which removes the Swift binary directory configuration option entirely and enforces PATH-only resolution for the native Swift demangler binary. Monitor the Ghidra releases page at https://github.com/NationalSecurityAgency/ghidra for a tagged release incorporating this commit, as an exact patched version number is not yet confirmed. As an immediate compensating control, disable the Demangler Swift Analyzer in Ghidra's analysis options (Analysis > Auto Analyze > uncheck 'Demangler Swift') before opening any project files received from external or untrusted sources - this prevents SwiftDemanglerAnalyzer from running and eliminates the attack vector entirely, with the trade-off that Swift symbol demangling will be unavailable during analysis. Additionally, establish a policy against opening Ghidra project files from untrusted parties until a patched release is available.
Ghidra/RuntimeScripts/Linux/support/launch.sh in NSA Ghidra through 10.2.2 passes user-provided input into eval, leading
NSA Ghidra through 9.0.4, when experimental mode is enabled, allows arbitrary code execution if the Read XML Files featu
NSA Ghidra before 9.0.1 allows XXE when a project is opened or restored, or a tool is imported, as demonstrated by a pro
NSA Ghidra before 9.0.2 is vulnerable to DLL hijacking because it loads jansi.dll from the current working directory. Ra
In NSA Ghidra before 9.1, path traversal can occur in RestoreTask.java (from the package ghidra.app.plugin.core.archive)
Command injection in NSA Ghidra (versions before 12.0.3) executes arbitrary commands when analysts click on maliciously
SQL injection in Ghidra's BSim binary-similarity component (versions before 12.1) allows authenticated remote attackers
Authentication bypass in NSA Ghidra versions prior to 12.1 allows any holder of a valid CA-signed certificate to imperso
SQL injection in Ghidra's PostgreSQL collaboration backend (versions 11.0 through pre-12.1) allows authenticated users t
Remote code execution in NSA Ghidra before version 12.1 allows attackers to execute arbitrary commands when a user opens
Command injection in Ghidra versions before 12.1 on Windows allows attackers to execute arbitrary OS commands under the
Arbitrary file write in NSA's Ghidra reverse-engineering framework before version 12.0.4 allows attackers to escape the
Same weakness CWE-427 – Uncontrolled Search Path Element
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-52372
GHSA-mfcj-9frg-f2r4