Nationalsecurityagency
Monthly
Decompiling a maliciously crafted binary with Ghidra through 12.1.4 can drive a stack-based out-of-bounds write inside the decompiler's leftshift128 routine, letting the sample corrupt process memory and potentially achieve code execution in the analyst's Ghidra session. The flaw is triggered when a specific instruction sequence lowers to p-code containing a negative shift amount that reaches the RuleDivOpt/RuleDivTermAdd divisor-optimization path; no privileges are required (PR:N in both the reported CVSS 4.0 vector and the independent CVSS 3.1 assessment), but exploitation is gated on the victim loading and decompiling the attacker-supplied file (UI:P/UI:R), making this a targeted threat against reverse engineers rather than a remote one. At the time of analysis, no public exploit code has been identified for this issue and there is no confirmed active exploitation (CISA KEV status is not present).
SQL injection in Ghidra's BSim binary-similarity component (versions before 12.1) allows authenticated remote attackers to inject arbitrary SQL via filter types that concatenate user-supplied values directly into PostgreSQL queries. Successful exploitation lets an attacker read, modify, or delete contents of the backing BSim PostgreSQL database used to store function signatures. No public exploit identified at time of analysis, though a vendor security advisory has been published by NSA on GitHub.
Arbitrary file write in NSA's Ghidra reverse-engineering framework before version 12.0.4 allows attackers to escape the theme directory via Zip Slip path traversal sequences in malicious theme ZIP archives, leading to code execution or credential compromise. The flaw requires user interaction (importing the booby-trapped theme) and is exploited locally against the user running Ghidra. No public exploit identified at time of analysis, though the technique (Zip Slip) is well-documented and trivially reproducible.
Authentication bypass in NSA Ghidra versions prior to 12.1 allows any holder of a valid CA-signed certificate to impersonate arbitrary users by submitting their public certificate alongside a null signature to PKIAuthenticationModule.authenticate(). Successful exploitation yields privilege escalation, tampering of repository access controls, exfiltration of shared reverse-engineering databases, and persistent compromise of the Ghidra server. No public exploit identified at time of analysis, but a vendor patch and detailed advisory from VulnCheck are available.
Arbitrary file write in NSA Ghidra versions prior to 12.0.2 allows local attackers to achieve code execution by tricking a user into installing a malicious extension archive. The extension installer fails to sanitize ZIP entry names, enabling classic Zip Slip path traversal that writes files outside the intended extension directory. No public exploit identified at time of analysis, though the technique is well-documented and trivially reproducible.
Remote code execution in NSA Ghidra before version 12.1 allows attackers to execute arbitrary commands when a user opens a malicious shared-project file containing a ghidra:// URL, triggering unsafe Java deserialization in the client-side Shared-Project RMI connection code. Exploitation leverages a Jython 2.7.4 gadget chain and requires only user interaction (opening the crafted project), with no authentication needed. No public exploit identified at time of analysis, though VulnCheck has published an advisory describing the flaw.
Command injection in Ghidra versions before 12.1 on Windows allows attackers to execute arbitrary OS commands under the Ghidra user's privileges when a victim clicks a maliciously crafted URL embedded in a program comment annotation. The flaw stems from improper escaping of cmd.exe metacharacters in URL annotation handling, and exploitation requires user interaction (UI:A). No public exploit identified at time of analysis, though VulnCheck published a dedicated advisory alongside the NSA's GitHub security advisory.
SQL injection in Ghidra's PostgreSQL collaboration backend (versions 11.0 through pre-12.1) allows authenticated users to escalate to PostgreSQL superuser by injecting crafted username strings into ALTER ROLE statements issued by the changePassword() method. Exploitation requires only low-privileged authenticated access to the Ghidra server, and no public exploit has been identified at time of analysis despite a working proof-of-concept being implied by the detailed vendor advisory from VulnCheck and NSA.
Command injection in NSA Emissary P2P workflow engine (versions prior to 8.39.0) allows authenticated remote administrators to execute arbitrary shell commands through unsanitized PLACE_NAME parameter values. The Executrix utility class passes configuration-derived values directly to /bin/sh -c with only space-to-underscore sanitization, enabling shell metacharacters (semicolons, pipes, backticks) to trigger command execution. CVSS 7.2 (High) reflects network accessibility with low attack complexity, though exploitation requires high-privilege administrator credentials (PR:H). No public exploit code identified at time of analysis, with EPSS data unavailable for this recent CVE. Vendor-released patch available in version 8.39.0 per GitHub security advisory.
Shell command injection in Emissary workflow engine below version 8.39.0 allows high-privileged attackers with repository write access to execute arbitrary commands via GitHub Actions workflow_dispatch inputs. Attackers exploit unsanitized ${{ }} expression syntax in workflow files to inject malicious shell commands, enabling repository poisoning and supply chain attacks affecting downstream users. CVSS 9.1 (Critical) with Changed scope indicates potential to compromise beyond the vulnerable component. No public exploit code or CISA KEV listing identified at time of analysis, though exploitation requires only repository write access with low attack complexity.
Integer truncation in Ghidra's decompiler packed-stream parser (PackedDecode::skipAttribute and skipAttributeRemaining in marshal.cc) causes the parser cursor to under-skip string attributes when a crafted length such as 0x100000000 is supplied, so the cursor remains inside attacker-controlled string data that is then decoded as legitimate protocol elements. Any Ghidra release before 12.2 is affected; an analyst must open or import a malicious packed stream such as a crafted .sla file, after which the decompiler process can be made to misinterpret data, inject attributes into its input stream, or crash. Impact is bounded to the decompiler process with no confidentiality effect and only limited integrity/availability impact; no public exploit was identified at time of analysis and the issue is not in CISA KEV, so this is a low-priority, patch-when-convenient fix rather than an emergency.
Disk-space exhaustion in NSA's Ghidra reverse-engineering suite affects every release before 12.2: the extension installer extracts attacker-supplied ZIP archives into ~/.config/ghidra/Ghidra*/Extensions without any cap on decompressed entry size, per-file size or compression ratio, so a small crafted 'zip bomb' extension can fill the host partition and cause later Ghidra writes and other applications' writes to fail. Exploitation is local and requires the victim to be persuaded to install the malicious archive through File > Install Extensions (the CVSS 4.0 vector is AV:L/AC:L/PR:N/UI:P with availability-only impact), and no public exploit code has been identified at the time of analysis - the practical risk is a social-engineering-driven denial of service rather than remote compromise. A vendor-released patch in Ghidra 12.2 adds a secure extractor that enforces a 100 MB per-entry limit, a 1 GB total limit and a 100:1 decompression ratio threshold.
Java heap exhaustion in Ghidra before 12.2 allows a crafted TAR or ZIP archive with an excessive number of entries to freeze the application when a user opens or batch-imports it. The archive mount code stores every entry through FileSystemIndexHelper without an entry-count limit, so a relatively small file with a huge entry count can block the UI thread and degrade the host until the process is forcibly terminated. Exploitation requires local file delivery and user interaction; no public exploit was identified at time of analysis, and the vendor has fixed the issue in Ghidra 12.2 by enforcing a 500,000-entry cap.
Denial of service in NSA Ghidra 10.2 through 12.1.4 allows an attacker who supplies a crafted 128-byte ELF file to force excessive memory allocation in the ELF loader, ending in an OutOfMemoryError during import/load-spec discovery or headless analysis. The issue is local and requires the victim or pipeline to load the untrusted file (user interaction), with impact limited to availability-no code execution, data disclosure, or integrity effect was assessed. No public exploit code was identified at time of analysis, and an upstream fix commit is available from the vendor.
Heap out-of-bounds reads in Ghidra 11.2 through 12.1.4 allow an attacker who supplies a crafted binary to make the decompiler read past the end of a string buffer while decoding multi-byte UTF-8, UTF-16, or UTF-32 characters, resulting in a decompiler crash or the leakage of adjacent heap bytes into the decompiled output. The issue is local rather than network-facing: it requires the victim to load and decompile the malicious file (CVSS v4.0 AV:L/PR:N/UI:P, base 4.8 MEDIUM; independent assessment CVSS 3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:L), and the impact is capped at low confidentiality and low availability with no integrity or code-execution effect. There is no confirmed active exploitation (not in CISA KEV) and no public exploit code identified at time of analysis, though the precondition is trivially met in malware-analysis workflows where hostile binaries are opened by design; a vendor patch is available as an upstream commit.
Decompiling an attacker-crafted x86-64 binary in NSA Ghidra through version 12.1.4 can crash the decompiler helper process via a heap use-after-free in Funcdata::opInsertAfter, denying service to analysts and automated analysis pipelines. The vulnerability is triggered only when a victim actively loads and decompiles a malicious sample containing a specific instruction sequence that leaves stale INDIRECT effect-op references in the decompiler's internal P-code model; it is a local, user-interaction-required issue (CVSS 4.0 4.8; assessed CVSS 3.1 AV:L/AC:L/PR:N/UI:R, C:N/I:N/A:L) with no confidentiality or integrity impact. No public exploit code has been identified and there is no indication of confirmed active exploitation; the practical risk is a restartable crash of the helper process, not code execution or data compromise. Vendor patch data is available (upstream fix commit), and the flaw is classed as CWE-416 (use-after-free).
A local denial-of-service condition affects Ghidra versions before 12.1.4, where the software-suite's OptionsDB.createUnregisteredOption() routine fails to validate the TYPE_COL byte of an imported program database, triggering an ArrayIndexOutOfBoundsException. The exception path skips the lock-release logic in AbstractTransactionManager, leaving domain objects permanently locked so the application stalls and cannot clean up resources or shut down gracefully. Exploitation is not remote: it requires a Ghidra operator to be socially engineered into importing a maliciously crafted program database file (CVSS 4.0 base 6.8, AV:L/UI:P, availability-only impact), and no authentication or special configuration is needed. At time of analysis there is no public exploit code identified and no evidence of active exploitation, so this is best treated as a genuine but low-priority availability bug rather than a critical flaw.
Heap-use-after-free corruption in Ghidra's decompiler before version 12.1 allows a local attacker - or any actor who can deliver a crafted binary to a target analyst - to corrupt freed heap memory when the victim opens the file in the decompiler view. The vulnerability resides in HighVariable::merge() during the variable merging pass, where stale pointers in the HighIntersectTest::highedgemap cache are dereferenced against freed memory, producing low-impact integrity and availability effects on the Ghidra process. No active exploitation has been confirmed (not in CISA KEV) and no public exploit code has been identified at time of analysis, but the tool's user base of security researchers who routinely open untrusted binaries elevates the practical threat profile.
Path traversal in Ghidra's IsfServer component (all versions before 12.2) allows remote unauthenticated attackers to enumerate filesystem paths and probe arbitrary files by connecting to TCP port 54321 and sending crafted protobuf messages. The root cause is unsanitized client-supplied namespace strings passed directly to filesystem operations, a CWE-22 defect. Given Ghidra's deployment context - security research, malware analysis, and reverse engineering of sensitive artifacts, often in high-value government and defense environments - successful exploitation could expose directory structures and sensitive file metadata on the analyst's workstation. No public exploit code has been identified and this vulnerability is not in CISA KEV at time of analysis.
Uncontrolled memory allocation in Ghidra's rust_demangle function (versions before 12.0.3) allows a denial-of-service condition when a user analyzes a specially crafted binary containing malicious Rust symbol names. The affected function allocates output buffers without enforcing size limits, enabling exponential memory growth that crashes the Ghidra process. No public exploit code or active exploitation (CISA KEV) has been identified at time of analysis; however, the practical attack surface is real for teams that routinely analyze untrusted Rust binaries.
Path traversal in Ghidra's SameDirDebugInfoProvider (versions before 12.1) enables filesystem probing and CRC32 hash leakage of arbitrary files when a user opens a crafted ELF binary during automatic DWARF analysis. The vulnerability stems from missing validation of filenames embedded in ELF .gnu_debuglink sections before those filenames are used to construct filesystem paths. No public exploit code is currently identified and it is not listed in CISA KEV, but the risk is notable for security researchers and reverse engineers who routinely analyze untrusted binaries.
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.
Uncontrolled resource consumption in Ghidra's Mach-O binary parser (versions 10.2 through pre-12.1) allows a crafted binary to crash the entire JVM and destroy all unsaved analyst work. The ExportTrie.parseTrie() method lacks cycle detection when walking export trie structures, so a malicious Mach-O binary embedding circular trie references triggers unbounded queue growth and exponential string concatenation until an OutOfMemoryError terminates the JVM process. No public exploit has been identified at time of analysis and no CISA KEV listing exists, but the risk is materially elevated in adversarial research contexts where analysts routinely open untrusted binaries - exactly the workflow Ghidra is designed for.
Ghidra before 11.2 contains a use after free vulnerability in the Sleigh backend caused by undefined static initialization order of the SleighArchitecture::translators and XmlArchitectureCapability. Rated low severity (CVSS 2.1), this vulnerability is no authentication required, low attack complexity.
Emissary versions prior to 8.39.0 allow unauthenticated remote attackers to read arbitrary configuration files through path traversal via the /api/configuration/{name} endpoint. The vulnerability stems from incomplete blacklist validation of configuration names that can be bypassed using URL-encoded variants, double-encoding, or Unicode normalization attacks. No public exploit code or active exploitation has been confirmed.
Stored cross-site scripting in Emissary prior to 8.39.0 allows authenticated administrators to inject malicious javascript: URIs into navigation item configuration, which are then rendered unsafely in href attributes viewed by other authenticated users. The vulnerability requires high-privilege administrative access to modify navItems configuration but affects all other users accessing the web interface, with confirmed fix available in version 8.39.0.
Decompiling a maliciously crafted binary with Ghidra through 12.1.4 can drive a stack-based out-of-bounds write inside the decompiler's leftshift128 routine, letting the sample corrupt process memory and potentially achieve code execution in the analyst's Ghidra session. The flaw is triggered when a specific instruction sequence lowers to p-code containing a negative shift amount that reaches the RuleDivOpt/RuleDivTermAdd divisor-optimization path; no privileges are required (PR:N in both the reported CVSS 4.0 vector and the independent CVSS 3.1 assessment), but exploitation is gated on the victim loading and decompiling the attacker-supplied file (UI:P/UI:R), making this a targeted threat against reverse engineers rather than a remote one. At the time of analysis, no public exploit code has been identified for this issue and there is no confirmed active exploitation (CISA KEV status is not present).
SQL injection in Ghidra's BSim binary-similarity component (versions before 12.1) allows authenticated remote attackers to inject arbitrary SQL via filter types that concatenate user-supplied values directly into PostgreSQL queries. Successful exploitation lets an attacker read, modify, or delete contents of the backing BSim PostgreSQL database used to store function signatures. No public exploit identified at time of analysis, though a vendor security advisory has been published by NSA on GitHub.
Arbitrary file write in NSA's Ghidra reverse-engineering framework before version 12.0.4 allows attackers to escape the theme directory via Zip Slip path traversal sequences in malicious theme ZIP archives, leading to code execution or credential compromise. The flaw requires user interaction (importing the booby-trapped theme) and is exploited locally against the user running Ghidra. No public exploit identified at time of analysis, though the technique (Zip Slip) is well-documented and trivially reproducible.
Authentication bypass in NSA Ghidra versions prior to 12.1 allows any holder of a valid CA-signed certificate to impersonate arbitrary users by submitting their public certificate alongside a null signature to PKIAuthenticationModule.authenticate(). Successful exploitation yields privilege escalation, tampering of repository access controls, exfiltration of shared reverse-engineering databases, and persistent compromise of the Ghidra server. No public exploit identified at time of analysis, but a vendor patch and detailed advisory from VulnCheck are available.
Arbitrary file write in NSA Ghidra versions prior to 12.0.2 allows local attackers to achieve code execution by tricking a user into installing a malicious extension archive. The extension installer fails to sanitize ZIP entry names, enabling classic Zip Slip path traversal that writes files outside the intended extension directory. No public exploit identified at time of analysis, though the technique is well-documented and trivially reproducible.
Remote code execution in NSA Ghidra before version 12.1 allows attackers to execute arbitrary commands when a user opens a malicious shared-project file containing a ghidra:// URL, triggering unsafe Java deserialization in the client-side Shared-Project RMI connection code. Exploitation leverages a Jython 2.7.4 gadget chain and requires only user interaction (opening the crafted project), with no authentication needed. No public exploit identified at time of analysis, though VulnCheck has published an advisory describing the flaw.
Command injection in Ghidra versions before 12.1 on Windows allows attackers to execute arbitrary OS commands under the Ghidra user's privileges when a victim clicks a maliciously crafted URL embedded in a program comment annotation. The flaw stems from improper escaping of cmd.exe metacharacters in URL annotation handling, and exploitation requires user interaction (UI:A). No public exploit identified at time of analysis, though VulnCheck published a dedicated advisory alongside the NSA's GitHub security advisory.
SQL injection in Ghidra's PostgreSQL collaboration backend (versions 11.0 through pre-12.1) allows authenticated users to escalate to PostgreSQL superuser by injecting crafted username strings into ALTER ROLE statements issued by the changePassword() method. Exploitation requires only low-privileged authenticated access to the Ghidra server, and no public exploit has been identified at time of analysis despite a working proof-of-concept being implied by the detailed vendor advisory from VulnCheck and NSA.
Command injection in NSA Emissary P2P workflow engine (versions prior to 8.39.0) allows authenticated remote administrators to execute arbitrary shell commands through unsanitized PLACE_NAME parameter values. The Executrix utility class passes configuration-derived values directly to /bin/sh -c with only space-to-underscore sanitization, enabling shell metacharacters (semicolons, pipes, backticks) to trigger command execution. CVSS 7.2 (High) reflects network accessibility with low attack complexity, though exploitation requires high-privilege administrator credentials (PR:H). No public exploit code identified at time of analysis, with EPSS data unavailable for this recent CVE. Vendor-released patch available in version 8.39.0 per GitHub security advisory.
Shell command injection in Emissary workflow engine below version 8.39.0 allows high-privileged attackers with repository write access to execute arbitrary commands via GitHub Actions workflow_dispatch inputs. Attackers exploit unsanitized ${{ }} expression syntax in workflow files to inject malicious shell commands, enabling repository poisoning and supply chain attacks affecting downstream users. CVSS 9.1 (Critical) with Changed scope indicates potential to compromise beyond the vulnerable component. No public exploit code or CISA KEV listing identified at time of analysis, though exploitation requires only repository write access with low attack complexity.
Integer truncation in Ghidra's decompiler packed-stream parser (PackedDecode::skipAttribute and skipAttributeRemaining in marshal.cc) causes the parser cursor to under-skip string attributes when a crafted length such as 0x100000000 is supplied, so the cursor remains inside attacker-controlled string data that is then decoded as legitimate protocol elements. Any Ghidra release before 12.2 is affected; an analyst must open or import a malicious packed stream such as a crafted .sla file, after which the decompiler process can be made to misinterpret data, inject attributes into its input stream, or crash. Impact is bounded to the decompiler process with no confidentiality effect and only limited integrity/availability impact; no public exploit was identified at time of analysis and the issue is not in CISA KEV, so this is a low-priority, patch-when-convenient fix rather than an emergency.
Disk-space exhaustion in NSA's Ghidra reverse-engineering suite affects every release before 12.2: the extension installer extracts attacker-supplied ZIP archives into ~/.config/ghidra/Ghidra*/Extensions without any cap on decompressed entry size, per-file size or compression ratio, so a small crafted 'zip bomb' extension can fill the host partition and cause later Ghidra writes and other applications' writes to fail. Exploitation is local and requires the victim to be persuaded to install the malicious archive through File > Install Extensions (the CVSS 4.0 vector is AV:L/AC:L/PR:N/UI:P with availability-only impact), and no public exploit code has been identified at the time of analysis - the practical risk is a social-engineering-driven denial of service rather than remote compromise. A vendor-released patch in Ghidra 12.2 adds a secure extractor that enforces a 100 MB per-entry limit, a 1 GB total limit and a 100:1 decompression ratio threshold.
Java heap exhaustion in Ghidra before 12.2 allows a crafted TAR or ZIP archive with an excessive number of entries to freeze the application when a user opens or batch-imports it. The archive mount code stores every entry through FileSystemIndexHelper without an entry-count limit, so a relatively small file with a huge entry count can block the UI thread and degrade the host until the process is forcibly terminated. Exploitation requires local file delivery and user interaction; no public exploit was identified at time of analysis, and the vendor has fixed the issue in Ghidra 12.2 by enforcing a 500,000-entry cap.
Denial of service in NSA Ghidra 10.2 through 12.1.4 allows an attacker who supplies a crafted 128-byte ELF file to force excessive memory allocation in the ELF loader, ending in an OutOfMemoryError during import/load-spec discovery or headless analysis. The issue is local and requires the victim or pipeline to load the untrusted file (user interaction), with impact limited to availability-no code execution, data disclosure, or integrity effect was assessed. No public exploit code was identified at time of analysis, and an upstream fix commit is available from the vendor.
Heap out-of-bounds reads in Ghidra 11.2 through 12.1.4 allow an attacker who supplies a crafted binary to make the decompiler read past the end of a string buffer while decoding multi-byte UTF-8, UTF-16, or UTF-32 characters, resulting in a decompiler crash or the leakage of adjacent heap bytes into the decompiled output. The issue is local rather than network-facing: it requires the victim to load and decompile the malicious file (CVSS v4.0 AV:L/PR:N/UI:P, base 4.8 MEDIUM; independent assessment CVSS 3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:L), and the impact is capped at low confidentiality and low availability with no integrity or code-execution effect. There is no confirmed active exploitation (not in CISA KEV) and no public exploit code identified at time of analysis, though the precondition is trivially met in malware-analysis workflows where hostile binaries are opened by design; a vendor patch is available as an upstream commit.
Decompiling an attacker-crafted x86-64 binary in NSA Ghidra through version 12.1.4 can crash the decompiler helper process via a heap use-after-free in Funcdata::opInsertAfter, denying service to analysts and automated analysis pipelines. The vulnerability is triggered only when a victim actively loads and decompiles a malicious sample containing a specific instruction sequence that leaves stale INDIRECT effect-op references in the decompiler's internal P-code model; it is a local, user-interaction-required issue (CVSS 4.0 4.8; assessed CVSS 3.1 AV:L/AC:L/PR:N/UI:R, C:N/I:N/A:L) with no confidentiality or integrity impact. No public exploit code has been identified and there is no indication of confirmed active exploitation; the practical risk is a restartable crash of the helper process, not code execution or data compromise. Vendor patch data is available (upstream fix commit), and the flaw is classed as CWE-416 (use-after-free).
A local denial-of-service condition affects Ghidra versions before 12.1.4, where the software-suite's OptionsDB.createUnregisteredOption() routine fails to validate the TYPE_COL byte of an imported program database, triggering an ArrayIndexOutOfBoundsException. The exception path skips the lock-release logic in AbstractTransactionManager, leaving domain objects permanently locked so the application stalls and cannot clean up resources or shut down gracefully. Exploitation is not remote: it requires a Ghidra operator to be socially engineered into importing a maliciously crafted program database file (CVSS 4.0 base 6.8, AV:L/UI:P, availability-only impact), and no authentication or special configuration is needed. At time of analysis there is no public exploit code identified and no evidence of active exploitation, so this is best treated as a genuine but low-priority availability bug rather than a critical flaw.
Heap-use-after-free corruption in Ghidra's decompiler before version 12.1 allows a local attacker - or any actor who can deliver a crafted binary to a target analyst - to corrupt freed heap memory when the victim opens the file in the decompiler view. The vulnerability resides in HighVariable::merge() during the variable merging pass, where stale pointers in the HighIntersectTest::highedgemap cache are dereferenced against freed memory, producing low-impact integrity and availability effects on the Ghidra process. No active exploitation has been confirmed (not in CISA KEV) and no public exploit code has been identified at time of analysis, but the tool's user base of security researchers who routinely open untrusted binaries elevates the practical threat profile.
Path traversal in Ghidra's IsfServer component (all versions before 12.2) allows remote unauthenticated attackers to enumerate filesystem paths and probe arbitrary files by connecting to TCP port 54321 and sending crafted protobuf messages. The root cause is unsanitized client-supplied namespace strings passed directly to filesystem operations, a CWE-22 defect. Given Ghidra's deployment context - security research, malware analysis, and reverse engineering of sensitive artifacts, often in high-value government and defense environments - successful exploitation could expose directory structures and sensitive file metadata on the analyst's workstation. No public exploit code has been identified and this vulnerability is not in CISA KEV at time of analysis.
Uncontrolled memory allocation in Ghidra's rust_demangle function (versions before 12.0.3) allows a denial-of-service condition when a user analyzes a specially crafted binary containing malicious Rust symbol names. The affected function allocates output buffers without enforcing size limits, enabling exponential memory growth that crashes the Ghidra process. No public exploit code or active exploitation (CISA KEV) has been identified at time of analysis; however, the practical attack surface is real for teams that routinely analyze untrusted Rust binaries.
Path traversal in Ghidra's SameDirDebugInfoProvider (versions before 12.1) enables filesystem probing and CRC32 hash leakage of arbitrary files when a user opens a crafted ELF binary during automatic DWARF analysis. The vulnerability stems from missing validation of filenames embedded in ELF .gnu_debuglink sections before those filenames are used to construct filesystem paths. No public exploit code is currently identified and it is not listed in CISA KEV, but the risk is notable for security researchers and reverse engineers who routinely analyze untrusted binaries.
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.
Uncontrolled resource consumption in Ghidra's Mach-O binary parser (versions 10.2 through pre-12.1) allows a crafted binary to crash the entire JVM and destroy all unsaved analyst work. The ExportTrie.parseTrie() method lacks cycle detection when walking export trie structures, so a malicious Mach-O binary embedding circular trie references triggers unbounded queue growth and exponential string concatenation until an OutOfMemoryError terminates the JVM process. No public exploit has been identified at time of analysis and no CISA KEV listing exists, but the risk is materially elevated in adversarial research contexts where analysts routinely open untrusted binaries - exactly the workflow Ghidra is designed for.
Ghidra before 11.2 contains a use after free vulnerability in the Sleigh backend caused by undefined static initialization order of the SleighArchitecture::translators and XmlArchitectureCapability. Rated low severity (CVSS 2.1), this vulnerability is no authentication required, low attack complexity.
Emissary versions prior to 8.39.0 allow unauthenticated remote attackers to read arbitrary configuration files through path traversal via the /api/configuration/{name} endpoint. The vulnerability stems from incomplete blacklist validation of configuration names that can be bypassed using URL-encoded variants, double-encoding, or Unicode normalization attacks. No public exploit code or active exploitation has been confirmed.
Stored cross-site scripting in Emissary prior to 8.39.0 allows authenticated administrators to inject malicious javascript: URIs into navigation item configuration, which are then rendered unsafely in href attributes viewed by other authenticated users. The vulnerability requires high-privilege administrative access to modify navItems configuration but affects all other users accessing the web interface, with confirmed fix available in version 8.39.0.