IonStack: One-Click Firefox JIT-to-Linux-Kernel Root Exploit Chain (CVE-2026-10702 + CVE-2026-43499 "GhostLock") Demonstrated Against Android 17

IonStack: One-Click Firefox JIT-to-Linux-Kernel Root Exploit (TL-2026-1477), also tracked as IonStack, is a high-severity software vulnerability scored CVSS 8.8, first published 2026-07-18 and last reviewed 2026-08-02. It has no confirmed attribution, affects Mozilla Firefox, references 3 CVEs (CVE-2026-10702, CVE-2026-43499, CVE-2026-53166), maps to 43 MITRE ATT&CK techniques (T1005, T1014, T1027), and is covered by 9 detection rules and 38 indicators of compromise.

Key facts for TL-2026-1477

Threat ID
TL-2026-1477
Also known as
IonStack, GhostLock
Severity
HIGH
CVSS
8.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H)
Status
ACTIVE
Category
VULNERABILITY
First published
2026-07-18
Last reviewed
2026-08-02
Attribution confidence
LOW
Motivation
UNKNOWN
Target sectors
mobile-users, enterprise-byod, government administration, critical-infrastructure, general-consumer
Target regions
Global
Detection rules
9
Indicators of compromise
38
Updates
2026-08-02 · 4 updates · revalidated 4× · latest source

Malware and tooling in IonStack: One-Click Firefox JIT-to-Linux-Kernel Root Exploit

Malware and tooling: VEGA

Nebula Security's autonomous code-scanning agent VEGA discovered and chained two zero-days -- a Firefox IonMonkey JIT type-confusion flaw (CVE-2026-10702) and a 15-year-old Linux kernel rtmutex/futex-requeue use-after-free (CVE-2026-43499, "GhostLock") -- into a single-click, browser-to-kernel root exploit against fully patched Android 17 devices. No CVE was observed exploited in the wild prior to disclosure; both were responsibly disclosed and patched (Firefox 151.0.3, kernel commit 3bfdc63936dd).

How IonStack: One-Click Firefox JIT-to-Linux-Kernel Root Exploit works

IonStack is a two-stage, one-click exploit chain publicly demonstrated by Nebula Security (a Y Combinator-backed vulnerability research firm) in June-July 2026. Both component vulnerabilities were discovered autonomously -- without human code audit -- by Nebula's proprietary AI-driven static/dynamic analysis platform, VEGA, marking one of the first documented cases of an AI agent independently finding and chaining a full browser-to-kernel remote root exploit.

Stage one (CVE-2026-10702) is a JIT miscompilation / type-confusion bug (CWE-843) in IonMonkey, Firefox's optimizing JavaScript JIT compiler. A malicious web page reachable via a single URL click triggers miscompiled machine code inside the renderer process, giving the attacker memory corruption and initial code execution within the Firefox sandbox on Android. The flaw affects Firefox versions prior to 151.0.3 (initially believed fixed in 151.0.2, but the complete fix shipped in 151.0.3) and was reported to Mozilla as Bugzilla bug 2040903, addressed in Mozilla Security Advisory MFSA2026-54.

Stage two (CVE-2026-43499, codenamed "GhostLock") breaks out of the renderer sandbox and escalates to full root by exploiting a stack use-after-free in the Linux kernel's real-time mutex (rtmutex) priority-inheritance futex requeue path (kernel/locking/rtmutex.c, requires CONFIG_FUTEX_PI=y). The bug has existed in mainline Linux from v2.6.39-rc1 (introduced by commit 8161239a8bcc, ~2011) through v7.1-rc1 -- roughly 15 years -- and affects essentially every mainstream Linux distribution, including Android's kernel fork, that ships FUTEX_PI support unpatched.

Root cause: remove_waiter() was written for the case where a thread blocks on its own futex and later cleans up after itself. Requeue-PI (FUTEX_WAIT_REQUEUE_PI / FUTEX_CMP_REQUEUE_PI) breaks that assumption by using the same helper to clean up on behalf of a different, sleeping thread. When __rt_mutex_start_proxy_lock() returns -EDEADLK during rollback, remove_waiter() incorrectly clears current->pi_blocked_on instead of waiter->task->pi_blocked_on, leaving the sleeping waiter with a dangling pointer into its own now-reused kernel stack frame -- a stack use-after-free.

Exploitation (97% reliable, ~5 seconds, ordinary threading syscalls only, no special privileges): (1) a three-futex FUTEX_WAIT_REQUEUE_PI / FUTEX_CMP_REQUEUE_PI cycle is used to deliberately trigger the -EDEADLK rollback path and produce the dangling stack pointer; (2) prefetch timing side-channels leak the kernel image base (~9 bits of entropy) and the physmap base, defeating KASLR; (3) PR_SET_MM_MAP is abused to reclaim the freed waiter stack frame via a controlled user_auxv buffer spray, forging a fake rt_mutex_waiter structure in attacker-controlled memory; (4) the rb-tree erase logic inside rt_mutex_dequeue() is leveraged as a constrained arbitrary-pointer-write primitive; (5) that write overwrites the inet6_protos[IPPROTO_UDP] protocol handler pointer to redirect into the CPU Entry Area (CEA), which is seeded with a fake inet6_protocol structure, hijacking kernel control flow; (6) a short ROP gadget chain ("DirtyMode") flips permission bits on /proc/sys/kernel/core_pattern to make it world-writable, after which an unprivileged process triggers a crash to have the kernel execute an attacker-supplied core_pattern helper as root, completing privilege escalation.

Combined, a victim clicking one malicious URL in Firefox on Android 17 yields full root: data theft, surveillance, persistent backdoor installation, and complete remote device management -- with no further user interaction. Nebula Security states the two zero-days were not observed being exploited in the wild prior to their research and disclosed both responsibly. The GhostLock kernel patch, once merged, initially introduced a separate regression, CVE-2026-53166, later corrected; as of early July 2026 patch rollout to Ubuntu 24.04/22.04/20.04 LTS and Android OEM kernels remained uneven. Google's kernelCTF program paid Nebula Security a $92,337 bounty for the GhostLock privilege-escalation/container-escape exploit. Nebula published a working proof-of-concept for CVE-2026-43499 on GitHub (NebuSec/CyberMeowfia).

MITRE ATT&CK techniques used in TL-2026-1477

Collection

T1005 Data from Local System; T1074.001 Data Staged: Local Data Staging; T1123 Audio Capture; T1125 Video Capture

Defense Evasion

T1014 Rootkit; T1027 Obfuscated Files or Information; T1070 Indicator Removal; T1211 Exploitation for Stealth; T1620 Reflective Code Loading

Exfiltration

T1041 Exfiltration Over C2 Channel

Execution

T1059.007 Command and Scripting Interpreter: JavaScript; T1203 Exploitation for Client Execution

Privilege Escalation

T1068 Exploitation for Privilege Escalation; T1546 Event Triggered Execution; T1547 Boot or Logon Autostart Execution; T1548 Abuse Elevation Control Mechanism; T1548.001 Abuse Elevation Control Mechanism: Setuid and Setgid; T1611 Escape to Host

Command and Control

T1071 Application Layer Protocol; T1105 Ingress Tool Transfer; T1219 Remote Access Tools

Discovery

T1082 System Information Discovery; T1083 File and Directory Discovery; T1613 Container and Resource Discovery

Initial Access

T1189 Drive-by Compromise; T1190 Exploit Public-Facing Application; T1566 Phishing; T1566.002 Phishing: Spearphishing Link

execution

T1204.001 User Execution: Malicious Link; T1610 Deploy Container

defense-impairment

T1222.002 Linux and Mac Permissions; T1685 Disable or Modify Tools

Impact

T1489 Service Stop; T1491.002 External Defacement; T1499 Endpoint Denial of Service

Credential Access

T1528 Steal Application Access Token; T1539 Steal Web Session Cookie

Persistence

T1543 Create or Modify System Process; T1546.004 Event Triggered Execution: Unix Shell Configuration Modification

Resource Development

T1583.006 Acquire Infrastructure: Web Services; T1587 Develop Capabilities; T1588 Obtain Capabilities

Reconnaissance

T1592 Gather Victim Host Information

Affected products and versions in IonStack: One-Click Firefox JIT-to-Linux-Kernel Root Exploit

  • Mozilla — Firefox
    Vulnerable versions: < 151.0.3
    Fixed in: 151.0.3
  • Linux Kernel Community — Linux Kernel (rtmutex / futex-PI subsystem)
    Vulnerable versions: v2.6.39-rc1 - v7.1-rc1 (CONFIG_FUTEX_PI=y)
    Fixed in: patched via commit 3bfdc63936dd; Ubuntu 24.04/22.04/20.04 LTS rollout uneven as of 2026-07
  • Google — Android
    Vulnerable versions: Android 17 (fully patched builds, kernel fork inheriting CVE-2026-43499)
    Fixed in: pending OEM kernel backport of upstream GhostLock fix

Remediation for IonStack: One-Click Firefox JIT-to-Linux-Kernel Root Exploit

Patches

  • Firefox 151.0.3 (MFSA2026-54) fixes CVE-2026-10702
  • Linux kernel commit 3bfdc63936dd fixes CVE-2026-43499 (note: this fix initially introduced regression CVE-2026-53166, since corrected)

Immediate actions

  • Update Firefox (desktop and Android) to version 151.0.3 or later immediately
  • Apply Linux kernel patch for CVE-2026-43499 (commit 3bfdc63936dd) on all affected distributions
  • Verify Android OEM kernel forks have backported the GhostLock rtmutex fix; do not assume upstream patch coverage
  • Enable CONFIG_STATIC_USERMODE_HELPER to close the DirtyMode /proc/sys/kernel/core_pattern exploitation path
  • Enable RANDOMIZE_KSTACK_OFFSET to reduce stack-reuse reliability (defense in depth, does not fully close the bug)

Workarounds

  • Disable or restrict FUTEX_PI-dependent workloads / CONFIG_FUTEX_PI where kernel patching is not yet available
  • Restrict write access to /proc/sys/kernel/core_pattern via additional LSM policy (SELinux/AppArmor) as a stopgap

Longer-term hardening

  • Integrate automated AI/agentic code-scanning (as demonstrated by VEGA) into browser and kernel CI/CD pipelines to catch JIT miscompilation and use-after-free classes pre-release
  • Deploy mobile EDR / device integrity monitoring capable of detecting anomalous core_pattern writes and unexpected root-level process spawns
  • Track kernelCTF and browser bug-bounty disclosures for rtmutex/futex and JIT-related follow-on advisories
  • Layered mobile defense: URL/link reputation filtering, sandboxed browsing, and network-level anomaly detection to reduce one-click exploitation exposure

CVEs associated with IonStack: One-Click Firefox JIT-to-Linux-Kernel Root Exploit

CVE-2026-10702, CVE-2026-43499, CVE-2026-53166

Weaknesses (CWE) in IonStack: One-Click Firefox JIT-to-Linux-Kernel Root Exploit

CWE-843, CWE-416, CWE-362, CWE-825, CWE-733

Timeline of IonStack: One-Click Firefox JIT-to-Linux-Kernel Root Exploit

Showing the 20 most recent tracked events.

  • GhostLock fix v1 backported to stable kernel branches.
  • Nebula Security reports the IonMonkey JIT alias-analysis flaw (future CVE-2026-10702) to Mozilla, which confirms the bug the same day.
  • Mozilla ships Firefox 151.0.3 (MFSA2026-54), fixing the IonMonkey JIT type-confusion flaw later designated CVE-2026-10702.
  • Nebula Security publicly demonstrates the IonStack one-click exploit chain rooting a fully updated Android 17 device.
  • Google acknowledges Nebula Security's kernelCTF submission for the GhostLock privilege-escalation/container-escape exploit; a $92,337 bounty is subsequently awarded.
  • Nebula Security publishes the full GhostLock technical writeup ("IonStack part II") and PoC exploit code on GitHub (NebuSec/CyberMeowfia).
  • Broad media coverage of the IonStack chain and GhostLock CVE-2026-43499 (TheHackerNews, GBHackers, CyberSecurityNews); Ubuntu 24.04/22.04/20.04 LTS patch status reported as uneven.
  • KernelCare releases a rebootless livepatch applying commit 3bfdc63936dd across supported affected kernels.
  • CloudLinux begins stable rollout of patched kernels for CL7h, CL8, CL9, and CL10.
  • AlmaLinux ships patched kernels to production repositories for AlmaLinux 8, 9, and 10.
  • HKCERT issues High Threat Security Alert A26-07-14 confirming public PoC availability and broad distribution impact (Debian, Red Hat, SUSE, Ubuntu).
  • Nebula Security publishes 'IonStack Part I: Unsound IonBanana Peel in Ion Compiler', detailing the CVE-2026-10702 Object.keys()->addrof->fakeobj exploitation technique and publishing a CVE-2026-10702-specific PoC (index.html/exploit.html/ansi.js) at github.com/NebuSec/CyberMeowfia/tree/main/IonStack/CVE-2026-10702, distinct from the previously tracked CVE-2026-43499 PoC path.
  • Cloud Security Alliance publishes research note detailing GhostLock's container-escape implications for Docker, Podman, LXC, OpenShift, OpenStack, and RHV.
  • Zimperium publishes Mobile Threat Watch analysis flagging IonStack as evidence of evolving one-click Android exploitation techniques.
  • TL-Intel Harness RESEARCH phase compiles this threat record from public reporting; no CVE observed exploited in the wild per Nebula Security.
  • The Tor Project ships Tor Browser 15.0.19, rebased onto Firefox ESR 140.13.0 with backported fixes covering the IonMonkey JIT issue (CVE-2026-10702).
  • Nebula Security publishes the full IonStack demonstration combining CVE-2026-10702 and CVE-2026-43499 into a one-tap browser-to-kernel full-chain root exploit on ARM64 Android 17, using Firefox 151.0 offsets.
  • NVD last-modifies the CVE-2026-10702 record with revised CVSS scoring and additional references.
  • The Hacker News and other outlets report that every Tor Browser release built on an affected Firefox version was exposed to compromise via a single malicious webpage visit.
  • GBHackers publishes coverage warning that unpatched Tor Browser users remain exposed to drive-by compromise via the Firefox JIT flaw, prompting this revalidation.

Update history for TL-2026-1477

Sources cited for IonStack: One-Click Firefox JIT-to-Linux-Kernel Root Exploit

Threats related to IonStack: One-Click Firefox JIT-to-Linux-Kernel Root Exploit

Detection coverage for TL-2026-1477

As of 2026-08-02, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-1477 across Splunk SPL, Microsoft KQL and Sigma, covering 38 indicator(s) of compromise. The whole corpus is readable without an account; a free account unlocks full detection query text in Splunk SPL, Microsoft KQL and Sigma; paid tiers add raw indicator values, correlation and the MCP server. Threadlinqs MCP server · View plans.

Further reading

Threadlinqs Intelligence — Real-Time Threat Detection Platform

[ 0 threats ] [ 0 det ] [ CRIT: 0 ] [ HIGH: 0 ]
// threat_feed
$ sort --newest
Showing all threats

Latest Threats