Skip to main content

Ghidra CVE-2026-115503

| EUVDEUVD-2026-108335 MEDIUM
Improper Handling of Highly Compressed Data (Data Amplification) (CWE-409)
2026-10-22 VulnCheck GHSA-gmcq-gg82-5fvc
6.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Craft zip-bomb Ghidra extension archive
  2. Delivery
    Persuade user to install the extension
  3. Exploit
    unzipToInstallationFolder extracts without size limits
  4. Execution
    Host partition fills to 100%
  5. Impact
    Ghidra and other apps fail on disk writes (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V2 - Validation and Business Logic Compression ratio limits
Exploitation Conditions

Exploitation requires a victim to manually install an attacker-supplied Ghidra extension ZIP archive through Ghidra's extension installer (File > Install Extensions), which invokes ExtensionUtils.unzipToInstallationFolder() to extract entries into ~/.config/ghidra/Ghidra*/Extensions with no cap on decompressed entry size, per-file size, or compression ratio. The required condition is therefore social engineering: the user must be persuaded to download and install the crafted zip-bomb archive. Limiting factors that reduce realistic risk: the attack is local (AV:L) and demands active user interaction (UI:P) - there is no remote or unauthenticated trigger - and impact is confined to availability (disk/CPU/I/O exhaustion causing a denial of service for Ghidra and other host applications), with no confidentiality or integrity consequence. Affected: all Ghidra versions before 12.2; fixed in 12.2.

Impact

This is a medium-severity, availability-only denial-of-service issue, and the signals are internally consistent rather than conflicting. The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) correctly reflects a local, user-interaction-dependent flaw with impact limited to availability (VA:H) and zero confidentiality or integrity impact - so despite the 'Ghidra' being a high-profile NSA tool, this is not a remote code execution or data-exposure problem. No EPSS score, no CISA KEV listing, and no public exploit were supplied in the input, so there is no indication of active exploitation; the only exploitation driver is the attacker's ability to socially-engineer a user into installing a malicious extension. The vuln.today decision label is 'this_month' (not act_now/emergency), which aligns with the absence of KEV and the user-interaction requirement. Net assessment: a real but non-urgent, self-inflicted-via-social-engineering DoS - patch on a normal maintenance cycle rather than as an emergency. Note one input inconsistency to verify: the Tags include 'Information Disclosure', but every authoritative source (GHSA advisory, CWE-409, CVSS VA:H with VC:N/VI:N) describes a disk-exhaustion denial of service with no disclosure - treat the 'Information Disclosure' tag as mislabeled.

Exploit ScenarioDerived

An attacker publishes or distributes a Ghidra extension ZIP that contains a highly compressed entry (a zip bomb) whose decompressed size is effectively unbounded, then persuades a reverse-engineer to download and install it via Ghidra's extension installer. When Ghidra calls ExtensionUtils.unzipToInstallationFolder() the entry is written out without any size limit, filling the host partition to 100% as shown in the advisory's df output and stack trace. No public exploit was identified in the provided data, but the GHSA advisory includes a reproducing stack trace; exploitation is local and requires the victim to actively install the archive.

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

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

Alert me

AnalysisAIv1 – Oct 22, 2026

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.

RemediationAI

Vendor-released patch: upgrade to Ghidra 12.2 (release tag Ghidra_12.2_build, https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.2_build), which replaces the unbounded extraction with SecureZipExtractor enforcing a 100 MB per-entry cap, a 1 GB total-extraction cap and a 100:1 compression-ratio limit; the change is in commit 2c2bc5be182d655c9df418ac35b9782f39b6a784 and documented in advisory GHSA-mcjr-7qqr-m3w8. Until every analyst workstation and shared installation is on 12.2, the actionable compensating controls are process-level, since the vulnerable code has no configuration switch to disable it: restrict extension installation to archives obtained from the official Ghidra release/extension distribution or internally reviewed builds, and treat any third-party or emailed .zip extension as untrusted - because extraction has no size ceiling, opening such an archive through File > Install Extensions can consume the entire partition and cannot be interrupted before the limit is hit. Pair that with monitoring of free space on the partition holding ~/.config/ghidra (and the project repository, which fails to flush its index once the disk is full), so an attempted install is detected before other applications start failing writes; note these are detective/preventive workarounds with residual risk, not a substitute for the 12.2 upgrade, which the vendor positions as the complete fix.

Affected VersionsENISA

Ghidra 0 <12.2

Affected Packages

euvd ghidra fix: 12.2

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

The flaw is CWE-409 (Improper Handling of Highly Compressed Data) in Ghidra's Java extension subsystem: ExtensionUtils.unzipToInstallationFolder() and its helper writeZipEntryToFile() stream each ZIP entry straight to disk through Apache Commons IO's IOUtils.copyLarge() with no accounting of the decompressed byte count, no per-entry ceiling, no aggregate ceiling and no check on the compression ratio advertised by the ZIP central directory. Because the extraction target is a user-writable configuration path (/home/USERNAME/.config/ghidra/Ghidra*/Extensions), a few-kilobyte archive whose entries inflate to hundreds of gigabytes will be expanded until the filesystem returns 'No space left on device'; the advisory's stack trace shows the failure surfacing inside Ghidra's own indexed filesystem (IndexedLocalFileSystem.writeIndex), i.e. the tool loses the ability to persist project data after the disk is full. The upstream fix (commit 2c2bc5be182d655c9df418ac35b9782f39b6a784) introduces a new ghidra.util.SecureZipExtractor built on Commons Compress ZipFile plus InputStreamStatistics, which aborts extraction when a single entry exceeds 100 MB, when cumulative output exceeds 1 GB, or when the uncompressed-to-compressed ratio exceeds 100:1 (ratio checked only after 1 KB of compressed data to avoid false positives) - and it also routes entry names through FileUtilities.getSecureFile(), closing the related Zip Slip path. The package metadata confirms the branch split: vulnerable < 12.2, fixed in 12.2. The trigger requires a user-initiated install action; nothing in the evidence indicates a remote or automatic extraction path.

Know when Ghidra 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

Vendor (VulnCheck) PRIMARY 6.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 5.5 MEDIUM

Attacker supplies a local archive the user must install (AV:L, UI:R), no privileges needed (PR:N), straightforward trigger (AC:L); impact is availability-only disk exhaustion (A:H), with no C or I impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

Ghidra before 12.2 contains an improper handling of highly compressed data vulnerability in ExtensionUtils.unzipToInstallationFolder() that allows attackers to exhaust disk space. Attackers can persuade users to install a crafted zip bomb extension archive that expands without size limits, causing later writes by Ghidra and other applications to fail.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Medium
popular free reverse-engineering tool, common in security teams but not everywhere
Data Quality
5 sources
Confidence: Medium

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 No
EPSS 0.1%
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
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

More in Ghidra

View all
CVE-2023-22671 CRITICAL POC
9.8 Jan 06

Ghidra/RuntimeScripts/Linux/support/launch.sh in NSA Ghidra through 10.2.2 passes user-provided input into eval, leading

CVE-2019-16941 CRITICAL POC
9.8 Sep 28

NSA Ghidra through 9.0.4, when experimental mode is enabled, allows arbitrary code execution if the Read XML Files featu

CVE-2019-13625 CRITICAL POC
9.1 Jul 17

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

CVE-2019-17665 HIGH POC
7.8 Oct 16

NSA Ghidra before 9.0.2 is vulnerable to DLL hijacking because it loads jansi.dll from the current working directory. Ra

CVE-2019-13623 HIGH POC
7.8 Jul 17

In NSA Ghidra before 9.1, path traversal can occur in RestoreTask.java (from the package ghidra.app.plugin.core.archive)

CVE-2026-4946 HIGH
8.8 Mar 29

Command injection in NSA Ghidra (versions before 12.0.3) executes arbitrary commands when analysts click on maliciously

CVE-2026-52758 HIGH
8.7 Jun 10

SQL injection in Ghidra's BSim binary-similarity component (versions before 12.1) allows authenticated remote attackers

CVE-2026-52754 HIGH
8.7 Jun 10

Authentication bypass in NSA Ghidra versions prior to 12.1 allows any holder of a valid CA-signed certificate to imperso

CVE-2026-49498 HIGH
8.7 Jun 10

SQL injection in Ghidra's PostgreSQL collaboration backend (versions 11.0 through pre-12.1) allows authenticated users t

CVE-2026-52751 HIGH
8.6 Jun 10

Remote code execution in NSA Ghidra before version 12.1 allows attackers to execute arbitrary commands when a user opens

CVE-2026-52750 HIGH
8.4 Jun 10

Command injection in Ghidra versions before 12.1 on Windows allows attackers to execute arbitrary OS commands under the

CVE-2026-52755 HIGH
8.4 Jun 10

Arbitrary file write in NSA's Ghidra reverse-engineering framework before version 12.0.4 allows attackers to escape the

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