Security researchers at Cyera Research Labs have disclosed a critical vulnerability in Grist-Core, the open-source spreadsheet and database platform, that allows remote code execution through malicious spreadsheet formulas. The flaw, dubbed “Cellbreak,” enables attackers to escape the Python sandbox and execute arbitrary code on host systems.

Vulnerability overview

AttributeValue
CVE IDCVE-2026-24002
CVSS Score9.1 (Critical)
CodenameCellbreak
TypePyodide Sandbox Escape → RCE
Discovered byVladimir Tokarev (Cyera Research Labs)
AdvisoryGHSA-7xvx-8pf2-pv5g
Public disclosureJanuary 21, 2026
Patch availableGrist 1.7.9+

What is Grist?

Grist is a programmable spreadsheet and database platform that combines the familiarity of spreadsheets with the power of databases and Python scripting. It serves as an alternative to Excel and Google Sheets for users who need advanced data manipulation capabilities.

Key features:

  • Python formulas in spreadsheet cells
  • Relational database functionality
  • API integrations
  • Workflow automation
  • Self-hosted and SaaS deployment options

Adoption:

  • Government agencies (including France’s public sector)
  • 1,000+ organizations in higher education
  • Marketing and product teams
  • Data analysis workflows

Technical details

The Pyodide sandbox

Grist allows users to write Python formulas in spreadsheet cells for advanced data manipulation. To prevent arbitrary code execution, these formulas run inside a Pyodide sandbox—a WebAssembly-based Python runtime.

The escape

Cyera Research Labs discovered that the sandbox can be escaped when Grist is configured with:

GRIST_SANDBOX_FLAVOR=pyodide

A malicious formula can break out of the Pyodide sandbox and:

  • Execute OS commands on the host
  • Run host-runtime JavaScript
  • Access the underlying file system
  • Pivot to other systems

Attack requirements

RequirementDetails
AuthenticationNone required if victim opens malicious document
User interactionDocument must be processed (opened, imported)
ConfigurationGRIST_SANDBOX_FLAVOR=pyodide
Attack complexityLow

Attack scenarios

Scenario 1: Shared workspace compromise

  1. Attacker creates spreadsheet with malicious formula
  2. Shares document with team members
  3. Any user opening the document triggers the exploit
  4. Attacker gains code execution on victim’s Grist server
  5. Lateral movement to connected systems

Scenario 2: Malicious template

  1. Attacker uploads malicious template to public sharing platforms
  2. Organizations import template for internal use
  3. Formula executes on victim infrastructure
  4. Attacker establishes persistence

Scenario 3: Automated processing

Organizations allowing spreadsheet uploads for automated processing are at risk:

  • File upload triggers formula evaluation
  • No user interaction required beyond upload acceptance
  • Automated systems may have elevated privileges

Impact assessment

Blast radius

EnvironmentImpact
Self-hostedRCE on internal server, access to connected systems
SaaSRCE in vendor control plane, potential multi-tenant impact
IntegratedAccess to connected databases, APIs, business systems

Data at risk

Grist deployments typically contain sensitive business data:

  • Financial models and projections
  • Customer information
  • Operational data
  • Integration credentials
  • Business logic and workflows

Confidentiality, Integrity, Availability

Once RCE is achieved:

  • Confidentiality: Full access to host data and connected systems
  • Integrity: Ability to modify data, inject backdoors
  • Availability: Potential for data destruction or ransomware

Remediation

Patch information

The Grist security team implemented a fix in version 1.7.9 that runs Pyodide under Deno (a secure JavaScript runtime), adding an additional isolation layer.

VersionStatus
< 1.7.9Vulnerable
1.7.9+Patched

Update immediately to version 1.7.9 or later.

Patch technical details

Fix componentImplementation
Deno wrapperPyodide runs inside Deno sandbox
Permission restrictionsFile system, network access denied by default
Process isolationSeparate process for formula evaluation
Resource limitsMemory and CPU constraints enforced

Verification

After updating:

  1. Confirm version is 1.7.9 or later (grist --version)
  2. Review sandbox configuration settings
  3. Audit existing spreadsheets for suspicious formulas
  4. Test formula functionality in non-production environment

Temporary mitigations

If immediate patching isn’t possible:

ControlImplementation
Disable Python formulasRemove formula capability if not required
Network isolationLimit Grist server network access
Input validationRestrict who can upload/create spreadsheets
MonitoringWatch for unusual process execution

Formula security: A broader problem

Cellbreak highlights a persistent challenge: any formula language is a potential attack surface.

PlatformRisk
ExcelMacros remain persistent threat vector
Google SheetsApps Script can be abused for phishing, data theft
Jupyter NotebooksExecute arbitrary code by design
AirtableScripts and automations
NotionEmbedded code blocks

The tension between functionality (users want programmable spreadsheets) and security (code execution is dangerous) creates inherent risk in these platforms.

Detection

Indicators of compromise

  • Unusual processes spawned by Grist server
  • Outbound network connections to unexpected destinations
  • File system modifications outside normal Grist paths
  • New user accounts or SSH keys on host system
  • Unexpected cron jobs or scheduled tasks

Monitoring recommendations

SourceWhat to watch
Process logsChild processes of Grist application
Network logsOutbound connections from Grist server
File integrityChanges outside Grist data directories
AuthenticationNew accounts, privilege changes

Recommendations

For Grist administrators

  1. Patch immediately to the latest version
  2. Audit existing spreadsheets for suspicious formulas
  3. Review who can create documents and restrict if possible
  4. Network segment Grist servers from sensitive systems
  5. Enable logging and monitor for anomalies

For organizations evaluating Grist

  • Understand the security model of programmable spreadsheets
  • Assess whether Python formula capability is required
  • Plan for regular patching and security updates
  • Implement network segmentation for data platforms

For security teams

  • Include spreadsheet platforms in threat models
  • Monitor for sandbox escape vulnerabilities across similar tools
  • Educate users about risks of opening untrusted spreadsheets
  • Implement file upload scanning where possible

Similar vulnerabilities in programmable platforms

Cellbreak joins a pattern of sandbox escape vulnerabilities in low-code/no-code platforms:

AttributeCellbreak (Grist)N8scape (n8n)
CVECVE-2026-24002CVE-2025-3385
PlatformGrist spreadsheetn8n workflow automation
SandboxPyodide (Python)VM2 (JavaScript)
CVSS9.19.8
ImpactHost RCEHost RCE
DisclosureJanuary 2026August 2025

Both vulnerabilities demonstrate the difficulty of safely executing user-provided code in multi-tenant or shared environments.

Pattern analysis

Platform typeSandbox technologyCommon weakness
SpreadsheetsPython/PyodideImport restrictions bypassed
Workflow toolsJavaScript/VM2Prototype pollution
NotebooksIPython kernelsNo true isolation
Low-code appsVariousInsufficient permission boundaries

Security researcher Vladimir Tokarev (who discovered Cellbreak) has noted the systemic nature of these issues:

“Sandboxing user code is fundamentally difficult. Every sandbox eventually gets broken. The question is whether additional isolation layers exist to contain the escape.”

Responsible disclosure timeline

DateEvent
December 15, 2025Vladimir Tokarev discovers vulnerability
December 16, 2025Initial report to Grist security team
December 17, 2025Grist acknowledges report
January 8, 2026Patch developed and tested
January 15, 2026Grist 1.7.9 released
January 21, 2026Public disclosure (coordinated)
January 27, 2026Full technical writeup published

The 35-day timeline from report to patch reflects responsible disclosure best practices.

Context

Cellbreak demonstrates that sandbox escapes remain a significant vulnerability class. As organizations adopt more sophisticated data tools with embedded scripting capabilities, the attack surface expands.

The vulnerability’s impact spans self-hosted and SaaS deployments. In SaaS environments, a sandbox escape isn’t just local server RCE—it becomes RCE in the vendor’s control plane, potentially affecting multiple tenants.

Vladimir Tokarev’s discovery of both Cellbreak and similar vulnerabilities in other platforms suggests a systemic issue with code execution sandboxing. Organizations should:

  • Assume sandboxes will eventually be bypassed
  • Implement defense-in-depth with multiple isolation layers
  • Treat programmable platforms as high-risk code execution environments

Grist’s rapid response and patch demonstrate responsible handling, but the underlying architectural challenge—enabling powerful functionality while preventing abuse—remains difficult across the industry. The addition of Deno as an outer sandbox provides the type of layered defense that should become standard for platforms executing user code.