Skip to main content

Ghidra CVE-2026-115395

| EUVDEUVD-2026-108331 MEDIUM
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-22 disclosure@vulncheck.com GHSA-hmjg-837r-prfv
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 theme ZIP with many tiny image entries
  2. Delivery
    Deliver archive and persuade analyst to import
  3. Exploit
    readZipTheme extracts unlimited files to images dir
  4. Execution
    Exhaust filesystem inodes and disk space
  5. Impact
    Deny service to Ghidra and host

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 the victim to actively import an attacker-supplied Ghidra theme ZIP archive through the theme import feature; the malicious archive must contain a very large number of files in its image/ subdirectory, which readZipTheme() extracts without count or size limits into ~/.config/ghidra/Ghidra*/images. Limiting factors: the attack is local and gated on user interaction (UI:P) - the target must be socially engineered into importing an untrusted theme - so there is no remote or unauthenticated trigger; it affects Ghidra versions 10.3 up to but not including 12.2, and version 12.2 enforces a 3000-entry icon cap that blocks this. Severity depends on the host filesystem's available inode pool and free disk space.

Impact

This is a genuine but low-urgency availability issue, not a high-impact priority. The provided CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P) scores 6.8 (Medium) and is internally consistent with the description: exploitation is local, requires passive user interaction (the victim must import a theme archive), needs no privileges, and produces only an availability impact (VA:H) with zero confidentiality or integrity impact. There is NO CISA KEV listing and NO EPSS score in the supplied data, so there is no signal of active or probable exploitation - consistent with the vuln.today 'this_month' decision label rather than act_now/emergency. No proof-of-concept or exploit-code reference appears among the provided references (only NVD, the fixing commit, the 12.2 release, the GHSA advisory, and the VulnCheck advisory), so exploitation status is 'no public exploit identified at time of analysis.' The signals do not conflict: a Medium-severity, user-interaction-gated, local DoS against a developer/analyst tool. The one caveat worth verifying is reach - the GHSA notes inode/disk exhaustion can degrade OTHER system services beyond Ghidra, so impact is host-wide rather than process-local, which is why VA:H (not L) is justified.

Exploit ScenarioDerived

An attacker shares a malicious Ghidra theme ZIP (e.g., via a forum, chat, or file-sharing channel) and persuades a reverse-engineer to import it. On import, readZipTheme() extracts the archive's thousands of tiny image files into ~/.config/ghidra/Ghidra*/images, exhausting the filesystem's inode pool and free disk space, which then blocks Ghidra and other local services that need to write to disk. No public exploit code was identified, but the attack requires only a crafted archive and basic ZIP-crafting skill.

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

Inode and disk-space exhaustion in Ghidra 10.3 through 12.1 allows an attacker who can convince a user to import a crafted theme ZIP archive to fill the host filesystem, causing Ghidra's own theme imports and other disk-dependent operations to fail. The flaw sits in ThemeReader.readZipTheme(), which extracts every entry under the archive's image/ directory into ~/.config/ghidra/Ghidra*/images without counting entries or bounding total size; an archive containing a very large number of tiny icon files drains the inode pool. The trigger is local and gated on user interaction (the victim must actively import the untrusted theme), so there is no remote or unauthenticated path, and the impact depends heavily on the target filesystem's free inodes and disk space. No public exploit code has been identified at time of analysis and the issue is not in CISA KEV; the upstream fix commit caps extracted icon entries at 3000 and Ghidra 12.2 ships that cap.

RemediationAI

Upgrade to Ghidra 12.2 or later, which enforces MAX_ZIP_ICON_ENTRIES = 3000 in ThemeReader.readZipTheme() and aborts an over-limit archive with an IOException instead of extracting it; the fixed build is published at https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.2_build and the details are in advisory GHSA-fvwx-pwq5-3738, with the code change in commit b0762c3e728a6a26d80ed4943c2efd53e2569120. No patched build exists for earlier 10.3-12.1 releases, so upgrading is the only complete fix and backporting the commit is the option for organizations that cannot move versions. Because exploitation requires the user to import an attacker-supplied theme archive, the practical compensating control before upgrading is to restrict theme imports to archives from trusted sources and, where feasible, inspect an archive's entry list and reject ones with thousands of entries under image/ before importing; the trade-off is that this relies on user discipline and manual review rather than technical enforcement. Monitoring free inodes and disk usage on Ghidra workstations (for example with df -i) gives detection but no prevention, and if inode exhaustion has already occurred, removing the extracted files under ~/.config/ghidra/Ghidra*/images is required to restore host availability. Note that this is a local, user-interaction-gated availability issue with no identified public exploit code, so remediation can follow normal patch-cycle timing rather than emergency change control.

Affected VersionsENISA

Ghidra 10.3 <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

Ghidra is the NSA's Java-based software reverse-engineering suite, and its GUI framework (Ghidra/Framework/Gui, package generic.theme) implements user-selectable themes. ThemeReader.readZipTheme() unpacks a theme ZIP, copying non-image theme data plus icons found under the archive's image/ subdirectory onto the host at ~/.config/ghidra/Ghidra*/images. The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling), also tracked in the advisory as CWE-400: the extraction loop iterates every entry in the archive with no cap on the number of files and no aggregate size or inode budget, so a zip of thousands of minuscule files consumes one inode per extracted file. Because inodes are a filesystem-wide, fixed resource, exhaustion spills beyond Ghidra and blocks file creation by other applications on the same host, producing a system-level availability loss rather than a Ghidra-only crash. The upstream fix commit b0762c3e728a6a26d80ed4943c2efd53e2569120 introduces a constant MAX_ZIP_ICON_ENTRIES = 3000 and an icon counter in readZipTheme() that throws an IOException ("Maximum number of extracted icon files (%d) has been exceeded!") once the limit is crossed, converting unbounded extraction into a bounded failure. The vector is local (AV:L) with user interaction required for the import (UI:P in the CVSS 4.0 vector, UI:R in the independent 3.1 assessment); confidentiality and integrity are unaffected, and the sole impact is high availability loss. The trigger beyond the entry-count inflation itself is not described in the available sources.

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

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

A local untrusted theme file must be imported by the user, so AV:L and UI:R; no privileges needed (PR:N); impact is availability-only host DoS (A:H) with no C/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

Lifecycle Timeline

1
Patch available
Oct 22, 2026 - 20:18 EUVD

DescriptionCVE.org

Ghidra 10.3 before 12.2 contains a resource allocation without limits vulnerability in ThemeReader.readZipTheme() that extracts unlimited theme ZIP entries to the images directory. Attackers can persuade users to import a crafted theme archive with many small files, exhausting inodes and disk space to deny service to the host.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Medium
NSA Ghidra is a widely-used free RE tool, 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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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