CVE DatabaseCVE-2026-24002
한국어 권고문 →
CVE-2026-240029.6/CRITICALCWE-74

Grist Spreadsheet Pyodide Sandbox Escape Remote Code Execution Vulnerability (CVE-2026-24002)

⚡ Jump to Patch
Affected Vendors
gristlabs
Affected Components
grist-core, grist
Published Date
2026-01-22
CVSS v3.1
9.6
CRITICAL
EPSS (30d)
N/A
FIRST.org
CISA KEV
Not Listed

Executive & SecOps Summary

SECOPS ASSESSMENT
Affected Scope

Self-managed Grist deployments running versions prior to 1.7.9 with the GRIST_SANDBOX_FLAVOR environment variable configured to pyodide

Impact

A remote attacker can execute arbitrary system processes on the hosting server by tricking a user into opening a maliciously crafted spreadsheet

Mitigation

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

All self-managed Grist instances running versions prior to 1.7.9 where `GRIST_SANDBOX_FLAVOR` is set to `pyodide`

Remediation & Live Workaround Commands

PATCH & WORKAROUND

1. 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:

bash
# 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.9

2. 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.

bash
# 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=gvisor

3. Log Audit & IoC Verification Commands

Run the following commands to verify your current configuration and inspect the container for suspicious process activity:

bash
# 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 auxf
Interactive SecOps Remediation Checklist
0/4 (0%)
Recommended Security Control & Mitigation Partner
Cloudflare Enterprise & Pro WAF
Immediately upgrade Grist to version 1.7.9 or higher, or configure GRIST_SANDBOX_FLAVOR=gvisor to prevent sandbox escape attacks.

Block 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.

3-min setup · Automated Zero-Day Managed Rules
Practice Exploiting & Patching This Web Vulnerability in an Interactive Lab
Launch Hands-On Security Lab

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

NVD Original English Description

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)

FAQ

Q1. 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.

SECOPS WORKBENCH INTEGRATION

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.

Generate Report →

🔗 Related Advisories in Similar Stack (gristlabs)

View Category →
SecOps Advisory Dispatch & RSS Feed

Subscribe to Daily Vulnerability Briefings & KEV Alerts

Concise morning briefings for SecOps, DevSecOps, and SRE teams covering newly exploited CVEs and mitigation priorities.

Slack / Teams / RSS Feed:
PatchKO
CVE-2026-24002 Grist Spreadsheet Pyodide Sandbox Escape Remote Code Execution Vulnerability (CVE-2026-24002) (CVSS 9.6) - Patch & Workaround | CVE Pulse