Grist Spreadsheet Pyodide Sandbox Escape Remote Code Execution Vulnerability (CVE-2026-24002)
Executive & SecOps Summary
SECOPS ASSESSMENTSelf-managed Grist deployments running versions prior to 1.7.9 with the GRIST_SANDBOX_FLAVOR environment variable configured to pyodide
A remote attacker can execute arbitrary system processes on the hosting server by tricking a user into opening a maliciously crafted spreadsheet
Upgrade Grist to version 1.7.9 or higher, or immediately change the sandbox flavor configuration to gvisor to enforce kernel-level isolation
Affected Products & Version Scope
Remediation & Live Workaround Commands
PATCH & WORKAROUND1. Official Patch & Version Upgrade Commands
Grist version 1.7.9 addresses this vulnerability by executing Pyodide under Deno, which provides a secure and restricted runtime environment. Use the following commands to upgrade your deployment:
# Pull the patched Grist Docker image (v1.7.9 or higher)
docker pull gristlabs/grist:1.7.9
# Stop and remove the vulnerable container
docker stop grist-container
docker rm grist-container
# Run the updated container with secure Deno-based Pyodide execution
docker run -d -p 8484:8484 \
--name grist-container \
-e GRIST_SANDBOX_FLAVOR='pyodide' \
gristlabs/grist:1.7.92. Temporary Workaround & Hardening Configuration
If an immediate upgrade is not feasible, mitigate the risk by switching the sandbox flavor to gvisor, which utilizes a secure kernel-level sandbox.
# Set the sandbox flavor to gvisor in your environment variables
export GRIST_SANDBOX_FLAVOR='gvisor'
# If using Docker Compose, update your docker-compose.yml as follows:
# environment:
# - GRIST_SANDBOX_FLAVOR=gvisor3. Log Audit & IoC Verification Commands
Run the following commands to verify your current configuration and inspect the container for suspicious process activity:
# 1. Verify the active Grist sandbox flavor configuration
echo '[*] Checking active sandbox flavor...'
env | grep GRIST_SANDBOX_FLAVOR
# 2. Inspect running processes inside the Grist container for anomalies
echo '[*] Auditing active processes inside the container...'
docker exec -it grist-container ps auxfBlock Exploits Instantly with Managed Virtual Patching Rules
Can't patch production immediately? Deploy managed WAF rules at the edge to intercept RCE, SQLi, and deserialization payloads before they hit your origin server.
Technical Root Cause & Exploitation Mechanics
1. Vulnerability Overview & Root Cause
This vulnerability (CVE-2026-24002) is a critical sandbox escape and remote code execution (RCE) flaw in Grist, an open-source collaborative spreadsheet platform. Grist utilizes Python as its formula language and provides sandboxing mechanisms to safely execute formulas within untrusted documents. When configured to use WebAssembly-based Pyodide on Node.js (GRIST_SANDBOX_FLAVOR=pyodide), the runtime environment lacks a robust security barrier. Due to this architectural limitation in Node.js-based Pyodide execution, untrusted code can break out of the logical boundary and access the underlying host system.
2. Exploitation Mechanics & Attack Scenario
An attacker crafts a malicious Grist spreadsheet (.grist) containing embedded Python formulas designed to invoke system-level APIs. The attacker then uploads this document to a target Grist instance or shares it with an unsuspecting user. Once the victim opens the document, the Grist backend initializes the Pyodide sandbox to evaluate the formulas. Because Pyodide running on Node.js does not enforce a secure sandbox barrier, the malicious formula payload can directly interact with Node.js runtime APIs (such as child_process) to spawn arbitrary shell commands on the host OS, leading to full remote code execution.
3. Infrastructure & Business Impact
With a CVSS score of 9.6 (Critical), this vulnerability poses a severe threat to self-hosted Grist deployments. Successful exploitation grants the attacker the ability to run arbitrary processes with the privileges of the Grist application. This can lead to complete compromise of the hosting server or container, unauthorized access to sensitive business databases, data exfiltration, and potential lateral movement within the internal corporate network.
Official Vendor Advisories & References
Grist is spreadsheet software using Python as its formula language. Grist offers several methods for running those formulas in a sandbox, for cases where the user may be working with untrusted spreadsheets. One such method runs them in pyodide, but pyodide on node does not have a useful sandbox barrier. If a user of Grist sets `GRIST_SANDBOX_FLAVOR` to `pyodide` and opens a malicious document, that document could run arbitrary processes on the server hosting Grist. The problem has been addressed in Grist version 1.7.9 and up, by running pyodide under deno. As a workaround, a user can use the gvisor-based sandbox by setting `GRIST_SANDBOX_FLAVOR` to `gvisor`.
Frequently Asked SecOps Questions (CVE-2026-24002)
FAQQ1. How critical is CVE-2026-24002 and is it actively exploited in the wild?
CVE-2026-24002 is rated CVSS 9.6 (CRITICAL). EPSS exploitation probability is pending FIRST.org calculation. Organizations running affected versions should prioritize patching based on network exposure.
Q2. Which vendors and products are affected by CVE-2026-24002?
Primary impacted vendors include gristlabs across grist-core, grist. Scope summary: All self-managed Grist instances running versions prior to 1.7.9 where GRIST_SANDBOX_FLAVOR is set to pyodide
Q3. What temporary mitigations or workarounds exist for CVE-2026-24002 before patching?
[Mitigation] Upgrade Grist to version 1.7.9 or higher, or immediately change the sandbox flavor configuration to gvisor to enforce kernel-level isolation Follow the CLI remediation commands and interactive SecOps checklist on this page to restrict exposure prior to your maintenance window.
Generate an Internal Engineering Notice or CISO Report for CVE-2026-24002
Instantly format this advisory into an executive CISO summary or engineering patch ticket.
🔗 Related Advisories in Similar Stack (gristlabs)
View Category →Ahsay AhsayCBS Replication Receiver Remote Code Execution (RCE) Vulnerability Advisory (CVE-2026-105134)
[Affected Scope] AhsayCBS versions up to 9.15.2.69 and 10.3.4.44, specifically the Replication Receiver component
Adobe Commerce (Magento) Server-Side Template Injection (SSTI) Remote Code Execution (CVE-2026-75650)
[Affected Scope] All unpatched versions of Adobe Commerce and Magento Open Source.
Metabase /reset_password Endpoint Unauthenticated SQL Injection and Admin Takeover (CVE-2026-72898)
[Affected Scope] Unpatched active instances of Metabase Open Source and Enterprise editions
WSO2 JWT Authentication Bypass and Account Takeover (CVE-2026-5430)
[Affected Scope] WSO2 Identity Server, API Manager, and products utilizing WSO2 JWT authentication modules.
Subscribe to Daily Vulnerability Briefings & KEV Alerts
Concise morning briefings for SecOps, DevSecOps, and SRE teams covering newly exploited CVEs and mitigation priorities.