Skip to main content

Ghidra EUVDEUVD-2026-109270

| CVE-2026-116012 LOW
Numeric Truncation Error (CWE-197)
2026-10-24 VulnCheck GHSA-5r3f-xv7p-f23m
2.0
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Craft malicious .sla packed stream
  2. Delivery
    Deliver file to Ghidra analyst
  3. Exploit
    Analyst loads file, decompiler parses it
  4. Execution
    Integer truncation under-skips string, cursor stays in attacker data
  5. Impact
    Parser reinterprets content, injects attributes or crashes decompiler

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Numeric truncation prevention
Exploitation Conditions

Exploitation requires an analyst to open or import a crafted packed stream - such as a malicious .sla file or other decompiler input that reaches PackedDecode::skipAttribute/skipAttributeRemaining during openElement attribute scanning - into Ghidra; this is reflected by AV:L (local file processing) and UI:P (the victim must load the file). Default Ghidra configurations parse such input, so no special feature toggle is needed, but the attacker must deliver the file and rely on the analyst processing attacker-supplied material, which is the core limiting factor. Impact is bounded to the decompiler process (parser confusion, attribute injection, or crash) with no confidentiality impact (VC:N) and only limited integrity/availability effects; the AT:P requirement reflects that a specific crafted length value (0x100000000-style) is needed to trigger the truncation, and the exact triggering conditions beyond this are as described in the GHSA source analysis.

Impact

This is a genuinely low-priority issue, and the signals agree. The CVSS 4.0 base score is 2.0 (Low) with vector AV:L/AC:L/AT:P/PR:N/UI:P and only limited integrity/availability impact (VI:L/VA:L, VC:N) - confirming a local, user-interaction-dependent flaw with no confidentiality exposure and no remote reach. The vuln.today Decision label is 'monitor', the weakest urgency tier, consistent with the low score. There is no CISA KEV listing and no EPSS score was provided; exploitation status is no public exploit identified at time of analysis - the VulnCheck and GHSA references are vendor/finder advisories and a patch commit, not working exploit code. The one cross-signal nuance: the GHSA advisory stresses that this parser-state corruption 'can chain with the handle_index and operand index OOB vulnerabilities in the same codebase,' so the real risk is higher as a chaining primitive than as a standalone bug, though those other flaws are outside this record and unverified here. Net: a real but low-severity defect whose worst realistic outcome is a crashed or confused decompiler process on a reverse engineer's workstation, not a widespread exploitation threat.

Exploit ScenarioDerived

An attacker crafts a malicious packed stream (such as a booby-trapped .sla SLEIGH file or other decompiler input) and gets a reverse engineer or malware analyst to load it into Ghidra. When the decompiler's PackedDecode parser skips a string attribute whose length is 0x100000000, the 64-bit length truncates to 0, leaving the parser cursor inside attacker-controlled data that is then re-interpreted as legitimate packed protocol elements, injecting arbitrary attributes or crashing the decompiler process. No public working exploit code is identified at this time.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 24, 2026

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.

RemediationAI

Upgrade to Ghidra 12.2 (the Ghidra_12.2_build release) or later; the fix is contained in commit d105789b331dba84ad73ab92db890e38fe665be0, which widens the length variable in PackedDecode::skipAttribute and skipAttributeRemaining and the advancePosition skip argument from uint4 to uint8 so 64-bit string lengths are no longer truncated. Full details and any vendor workaround guidance are in the GitHub security advisory https://github.com/NationalSecurityAgency/ghidra/security/advisories/GHSA-v423-5vh7-c7jw and the release notes at https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.2_build. If upgrading must wait, the practical compensating control is to avoid opening or importing .sla files or other decompiler packed streams of untrusted provenance, since the flaw requires the analyst to load a crafted file - the trade-off being that analysts cannot process third-party or shared Ghidra artifacts until the build is patched.

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

Ghidra's decompiler exchanges data with the rest of the toolchain through a packed binary marshal format implemented in Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc. PackedDecode::readInteger(int4 len) is declared to return a 64-bit uint8, but in skipAttribute (around marsh.cc lines 651-655) and the identical skipAttributeRemaining (lines 667-671) the returned length was stored in a 32-bit uint4 variable before being passed to advancePosition(Position&, uint4). A string attribute encoding a length of 0x100000000 therefore truncates to zero, advancePosition moves the cursor nowhere, and the byte reader continues from inside the string payload; if that payload is shaped like valid packed-format headers, the parser accepts the injected bytes as real attributes and elements (parser state corruption / attribute injection). The root cause is a numeric truncation (CWE-197, also classed CWE-681), and notably readString in the same file already used uint8 for this length, showing the 64-bit requirement was known elsewhere. The upstream fix changes both skip functions and advancePosition's skip parameter from uint4 to uint8. Because the corruption lets an attacker place arbitrary attribute values into the decode path, it can be chained with handle_index and operand-index out-of-bounds issues in the same codebase; on its own it produces decompiler misinterpretation, undefined behavior, or a crash. The trigger is a crafted packed stream reaching attribute scanning during openElement.

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 2.0 LOW
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 4.4 MEDIUM

Exploitation requires an analyst to open a crafted file locally (AV:L, UI:R), no auth (PR:N); impact is limited parser corruption and decompiler crash (I:L/A:L) with no data disclosure (C:N).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

Ghidra before 12.2 contains a numeric truncation vulnerability in PackedDecode::skipAttribute and skipAttributeRemaining in marshal.cc that stores 64-bit string lengths in 32-bit variables. Attackers can supply a crafted packed stream, such as a malicious .sla file, to inject attributes into the decompiler's input or crash the decompiler process.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Medium
very popular free reverse-engineering suite, but niche security-analyst audience
Social Media
1
Sightings
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 LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Low

Priority Score

10
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
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.

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