CVE-2026-52753
NixOS vulnerability analysis and mitigation

Overview

CVE-2026-52753 is an out-of-memory (OOM) vulnerability in Ghidra's GNU Demangler component (rust_demangle function) that allows an attacker to trigger unbounded memory allocation by supplying a maliciously crafted Rust symbol name in a binary. All Ghidra versions before 12.0.3 are affected. The vulnerability was published on June 10, 2026, with the security advisory originally published by NSA on February 11, 2026. It carries a CVSS v3.1 base score of 5.5 (Medium) and a CVSS v4.0 base score of 6.7 (Medium) (GitHub Advisory).

Technical details

The root cause is classified as CWE-789 (Memory Allocation with Excessive Size Value). The vulnerable str_buf_reserve() function in rust-demangle.c (lines 1530–1567) grows the output buffer exponentially via repeated doubling (new_cap *= 2) without any maximum size check, allowing a small ~61-byte malformed Rust v0 mangled symbol (prefixed with _R) to trigger allocation exceeding 2GB during lifetime printing in the demangling process. Exploitation requires local access and user interaction — specifically, a user must open or analyze a malicious binary in Ghidra, which internally passes attacker-controlled symbol names to the demangler_gnu native process via GnuDemanglerNativeProcess.java. The advisory includes a concrete PoC: a 61-byte base64-encoded payload that reliably crashes the process (GitHub Advisory).

Impact

Successful exploitation causes a Denial of Service (DoS) by crashing the Ghidra analysis process — the OOM killer terminates the process (exit code 137) after memory consumption grows from ~10MB to over 800MB within approximately 10 seconds. There is no confidentiality or integrity impact; the vulnerability is limited to availability of the Ghidra tool itself. Analysts relying on Ghidra for reverse engineering workflows could be disrupted if they open untrusted binaries containing crafted Rust symbols (GitHub Advisory).

Exploitation steps

  1. Craft malicious binary: Generate a malicious binary containing a crafted Rust v0 mangled symbol (~61 bytes) using the published PoC payload:
echo "X1JJTnZDNHRlX0M0dG9rcHBwcHBwcHBwcEZGRkZGRkdGcHBwcHBwcHBwS2oyX0ZGRkZGRkZGRkZGRkU=" | base64 -d > crash_input.bin
  1. Embed in binary: Package the crafted symbol name into a valid binary format (e.g., ELF or PE) that Ghidra will parse, or use the raw symbol directly if targeting the demangler_gnu CLI.
  2. Deliver to target: Social-engineer or otherwise cause a Ghidra user to open the malicious binary for analysis (e.g., via a shared sample in a malware analysis workflow).
  3. Trigger OOM: When Ghidra analyzes the binary, it passes the crafted symbol to demangler_gnu -s rust via GnuDemanglerNativeProcess.java. The str_buf_reserve() function enters exponential buffer growth, consuming all available memory and crashing the Ghidra process within ~10 seconds.
  4. Verify crash: The process is killed by the OOM killer with exit code 137; Ghidra becomes unresponsive or terminates (GitHub Advisory).

Indicators of compromise

  • Process: Ghidra Java process or demangler_gnu subprocess terminated with exit code 137 (OOM kill); rapid memory growth of the demangler_gnu process from ~10MB to 800MB+ within seconds.
  • Logs: System OOM killer log entries referencing demangler_gnu or Ghidra Java process in /var/log/syslog or dmesg (e.g., Out of memory: Kill process [PID] (demangler_gnu)).
  • File System: Presence of unexpected binary files with Rust v0 symbol prefixes (_R) containing nested generic parameters; specifically files matching the 61-byte PoC pattern.
  • Network: Delivery of malicious binary samples via email, file share, or download from untrusted sources to systems running Ghidra (GitHub Advisory).

Mitigation and workarounds

Upgrade Ghidra to version 12.0.3 or later, which imposes a process timeout on the GNU Demangler to prevent unbounded execution. As a temporary workaround until patching is possible, restrict binary analysis to trusted files only and consider limiting the memory resources available to the Ghidra process (e.g., via OS-level memory limits or container constraints) to contain the impact of potential crashes. The upstream binutils issue is tracked at https://sourceware.org/bugzilla/show_bug.cgi?id=33878 (GitHub Advisory).

Community reactions

The vulnerability was discovered and disclosed by Team FuzzingBrain using an AI-based Vulnerability Detection System, as credited in the official NSA/Ghidra security advisory. No significant broader media coverage or notable social media reactions have been identified beyond standard CVE aggregator publications (GitHub Advisory).

Additional resources


SourceThis report was generated using AI

Related NixOS vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-16412CRITICAL9.8
  • NixOS logoNixOS
  • cpe:2.3:a:mozilla:firefox:*:*:*:*:esr:*:*:*
NoYesJul 21, 2026
CVE-2026-16411CRITICAL9.8
  • NixOS logoNixOS
  • firefox
NoYesJul 21, 2026
CVE-2026-16410CRITICAL9.8
  • NixOS logoNixOS
  • thunderbird
NoYesJul 21, 2026
CVE-2026-16408CRITICAL9.8
  • NixOS logoNixOS
  • thunderbird
NoYesJul 21, 2026
CVE-2026-16409HIGH7.5
  • NixOS logoNixOS
  • cpe:2.3:a:mozilla:firefox
NoYesJul 21, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management