Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/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
Primary rating from Vendor (VulnCheck) · only source for this CVE.
CVSS VectorVendor: VulnCheck
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/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
Lifecycle Timeline
2DescriptionCVE.org
Ghidra before 12.1 contains a heap-use-after-free vulnerability in SleighBuilder::generatePointerAdd caused by iterator invalidation when PcodeCacher::allocateInstruction reallocates the issued vector. Attackers can trigger memory corruption by decompiling malicious binaries through the public Sleigh::oneInstruction C++ API, affecting downstream SLEIGH library consumers.
AnalysisAI
Heap-use-after-free in Ghidra's SLEIGH disassembler engine allows an attacker to cause memory corruption or application crash by supplying a crafted binary for decompilation. All Ghidra releases prior to 12.1 are affected, as is any downstream application consuming the SLEIGH library via the public Sleigh::oneInstruction C++ API. The CVSS v4.0 score of 6.9 reflects a high availability impact (VA:H) with low integrity impact (VI:L) and no confidentiality impact; no public exploit has been identified at time of analysis, and this vulnerability is not listed in the CISA KEV catalog.
Technical ContextAI
Ghidra is NSA's open-source reverse engineering framework whose core disassembly and decompilation engine is built on the SLEIGH processor specification language. The vulnerability resides in SleighBuilder::generatePointerAdd (CWE-416, Use After Free): when PcodeCacher::allocateInstruction needs to grow the internal 'issued' vector of P-code instructions, standard C++ vector reallocation moves the backing storage to a new memory address, invalidating all existing iterators and pointers into that vector. Code in SleighBuilder::generatePointerAdd that holds a live iterator or pointer into 'issued' before the reallocation then dereferences freed memory after the reallocation occurs. Because this code path is reachable through the public Sleigh::oneInstruction C++ API, any library consumer - not only the Ghidra GUI - is exposed. The CPE string cpe:2.3:a:nationalsecurityagency:ghidra:*:*:*:*:*:*:*:* confirms all versions are affected until the 12.1 boundary.
RemediationAI
Upgrade to Ghidra 12.1 or later; vendor patch is confirmed available. The specific upstream fix is commit 8a3018d5efcb07d2ec40bacdd6063cb6f01c8edf, which addresses the iterator invalidation in PcodeCacher::allocateInstruction. Full advisory details are at https://github.com/NationalSecurityAgency/ghidra/security/advisories/GHSA-gqh9-2c72-wpjc. For downstream SLEIGH library consumers who cannot immediately update, a compensating control is to validate and sandbox all untrusted binaries before passing them to the Sleigh::oneInstruction API - for example, running decompilation of untrusted inputs in an isolated process or container so that a crash or memory corruption does not affect the host analyst environment. This isolation approach does not prevent the vulnerability from triggering but limits blast radius to the sandboxed process. Note that the exact patched release version was stated as 12.1 in the CVE description but has not been independently confirmed against a tagged GitHub release at time of analysis.
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-416 – Use After Free
View allSame technique Use After Free
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-36005