A critical sandbox escape vulnerability in Grist-Core has been patched following responsible disclosure by Cyera Research Labs.
The flaw, tracked as GHSA-7xvx-8pf2-pv5g with a CVSS score of 9.1, enables attackers to achieve remote code execution through malicious spreadsheet formulas that circumvent the platform’s Pyodide WebAssembly sandbox protection mechanism.
Deployment Risk and Attack Surface
Grist-Core functions as a relational spreadsheet platform enabling teams to model business data, construct lightweight applications, and automate workflows using Python formulas.
The platform operates in both SaaS and self-hosted configurations, positioning it as a critical data hub with access to customer records, operational metrics, and integration credentials.
The platform is deployed across government agencies, including France’s public sector educational institutions, serving over 1,000 organizations across multiple industry verticals.
In SaaS deployments, a successful sandbox escape translates to remote code execution within the vendor-operated control plane, which processes multiple tenants’ workflows, potentially exposing credentials, data access paths, and downstream systems connected to the Grist environment.
| Advisory ID | CVSS Score | Attack Vector | Patch Version | Release Date |
|---|---|---|---|---|
| GHSA-7xvx-8pf2-pv5g | 9.1 | Network (AV:N) | Grist 1.7.9 | January 20, 2026 |
Cyera Research Labs identified three distinct escape vectors bypassing Grist’s blocklist-style sandbox implementation:
Python Class Hierarchy Traversal exploits warnings.catch_warnings to access full builtins, enabling direct import of the os module and execution of os.system() commands.
While Pyodide restricts top-level builtins, Python’s object model provides alternate paths to the original builtins object.
Direct C Library Access leverages the availability of ctypes within the sandbox, allowing attackers to call ctypes.CDLL(None).system(), which loads exported symbols from the Emscripten runtime process, including the system() function from libc.
Emscripten Runtime Manipulation represents the most powerful vector, utilizing emscripten_run_script_string() to execute JavaScript in the host runtime, providing access to require(‘child_process’) and process.env for complete host compromise.
Grist released version 1.7.9 on January 20, 2026, which relocates Pyodide formula execution under Deno by default.
This architectural change introduces a permission-based mediation layer that blocks sensitive capabilities unless explicitly granted, preventing the demonstrated escape primitives from achieving reliable host-level command execution.
Organizations running Grist should immediately upgrade to version 1.7.9 and verify that the GRIST_PYODIDE_SKIP_DENO flag is not enabled, as this configuration bypasses Deno protection and reintroduces the vulnerability.
Formula execution should be treated as a privileged capability with restricted access in collaborative environments.
The patch represents a significant security enhancement, transitioning from blocklist-based sandbox restrictions to a principled capability-based model that substantially reduces the attack surface for formula-based exploitation.
Follow us on Google News , LinkedIn and X to Get More Instant Updates. Set Cyberpress as a Preferred Source in Google.