Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft extension ZIP with huge file count
-
DeliveryDeliver archive to Ghidra user as plugin
-
ExploitUser installs via extension importer
-
ExecutionUnbounded unzipToInstallationFolder extraction
-
PersistFilesystem inode/disk pool exhausted
-
ImpactGhidra and other processes fail writes (DoS)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a user to be persuaded to download and install a maliciously crafted Ghidra extension ZIP archive through Ghidra's extension installer (which calls ExtensionUtils.unzipToInstallationFolder, extracting into ~/.config/ghidra/ghidra*/Extensions). No authentication or special privileges are needed (PR:N), and all versions before 12.2 are vulnerable in their default configuration because there was no cap on the number of extracted entries. The decisive limiting factor is the required user interaction (UI:P) plus local access (AV:L): an attacker cannot trigger this remotely or without the victim actively installing the archive. The fix introduces a default limit of 3000 entries (MAX_ZIP_ENTRIES_DEFAULT), overridable via the ghidra.extensions.maxfiles.override system property; the complete fix is upgrading to 12.2. |
| Impact | This is a medium-severity (CVSS 6.8) availability-only flaw, and the aggregated signals consistently point to a low-to-moderate real-world priority rather than an emergency. The CVSS 4.0 vector is AV:L/AC:L/AT:N/PR:N/UI:P with VA:H and no confidentiality or integrity impact, meaning the attack is local, requires no privileges, but depends on the victim performing an action (installing a malicious extension). The vuln.today Decision label is 'this_month', not act_now/emergency, which aligns with the local vector and interaction requirement. No CISA KEV listing and no EPSS score were provided in the input, so there is no evidence of active or probable exploitation; the GHSA advisory includes a reproduction (directory listing and stack trace) demonstrating the condition, but no weaponized, drop-in exploit code is referenced. The key tension to note: the official 4.0 vector attributes impact entirely to the vulnerable system (VA:H, SC/SI/SA:N), yet the advisory explicitly states that exhausting the host inode pool causes OTHER system services and applications to fail - a system-wide effect that arguably warrants a subsequent-system impact. Net assessment: a genuine denial-of-service condition, but one gated behind social engineering and yielding only self-inflicted availability loss on the victim's workstation, so it should be patched on a routine cycle, not treated as a drop-everything issue. |
| Exploit ScenarioDerived | An attacker packages a Ghidra extension ZIP containing an extremely large number of small files and distributes it (e.g., on a forum, plugin repository, or via a targeted message) as a useful plugin. A reverse engineer downloads it and uses Ghidra's extension installer, which extracts every entry without limit into ~/.config/ghidra/.../Extensions, exhausting the filesystem's inodes or disk space. No public weaponized exploit code is referenced, though the GHSA advisory includes a working reproduction; exploitation is local (AV:L) and low-complexity but requires the user to install the archive (UI:P). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 22, 2026
Ghidra releases before 12.2 extract extension ZIP archives without any cap on entry count, so a crafted archive containing a very large number of files can exhaust the local filesystem's inode pool and cause project writes, index flushes, and other host processes to fail. The flaw is availability-only: no confidentiality or integrity impact is assessed, and no credentials are needed, but an attacker must first persuade a victim to install the malicious archive through Ghidra's extension installer (local access plus user interaction). No public exploit code has been identified at time of analysis, and the aggregated signals place this at a 'this_month' priority rather than an emergency; the vendor-released patch is Ghidra 12.2.
RemediationAI
Vendor-released patch: Ghidra 12.2 - upgrade to the Ghidra_12.2_build release (https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.2_build), which caps extension archive extraction at 3000 entries by default and aborts with an IOException once that limit is exceeded. The ceiling is adjustable only deliberately, via the ghidra.extensions.maxfiles.override system property (for example -Dghidra.extensions.maxfiles.override=10000 in VMARGS in RuntimeScripts/support/launch.properties); raising it re-widens the exposure, so keep the 3000 default unless a legitimate large extension requires otherwise. Because the complete fix is the upgrade, environments that cannot move to 12.2 immediately should prevent the trigger rather than rely on detection: do not install extension ZIP archives received from untrusted sources through Ghidra's extension installer, and verify an archive's entry count before installation, since the pre-12.2 code will honor any number of entries. Full details are in the vendor advisory GHSA-j5q9-fhqg-q995.
Affected VersionsENISA
Affected Packages
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
Ghidra's extension installation path is Java code in the Generic framework: ExtensionUtils.unzipToInstallationFolder() hands the downloaded extension ZIP to SecureZipExtractor.extractSecurely(), which walks every entry and writes it out via writeZipEntryToFile() into ~/.config/ghidra/ghidra*/Extensions. Prior to 12.2 there was no accounting of how many entries an archive contained, so the loop would faithfully materialize an arbitrarily large number of files until the underlying filesystem ran out of inodes or space; the advisory's stack trace shows the resulting java.io.IOException: No space left on device and an IndexedLocalFileSystem failure to flush its index file because the inode count was exhausted. This is CWE-770 (Allocation of Resources Without Limits or Throttling), with the advisory also tagging CWE-400 (Uncontrolled Resource Consumption): the root cause is the missing bound on a resource-consuming operation rather than a logic or memory-safety defect. The upstream fix (commit 7cb4e778) threads a maxFiles parameter through extractSecurely(), decrements a remaining counter per entry and throws an IOException once it is exhausted, and ExtensionUtils supplies a default ceiling of 3000 entries (MAX_ZIP_ENTRIES_DEFAULT) that can be relaxed only through the ghidra.extensions.maxfiles.override system property documented in RuntimeScripts/support/launch.properties. Because extraction lands on the local filesystem, inode exhaustion is not confined to Ghidra, which is why the independent assessment scores scope as changed with high availability impact.
Know when the next one hits your stack
- 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
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
Local vector requiring the victim to install the archive (UI:R, PR:N, AC:L); only availability is affected, and inode exhaustion degrades other system processes beyond Ghidra, so S:C.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
1DescriptionCVE.org
Ghidra before 12.2 contains a resource allocation without limits vulnerability in ExtensionUtils.unzipToInstallationFolder() that extracts every extension ZIP entry without limiting file count. Attackers who persuade a user to install a crafted extension archive with many files can exhaust filesystem inodes, causing project writes and other processes to fail.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
EUVD-2026-108333
GHSA-2jjf-r2xm-9jmp
NVD
CVE.org
EPSS
Exploit-DB