Critical Cellbreak Vulnerability in Grist-Core Enables Remote Code Execution
Take action: If you're running Grist-Core, immediately update to version 1.7.9 to fix this flaw. There's a PoC available, so exploits will start VERY SOON. If you can't update right away, change your GRIST_SANDBOX_FLAVOR setting to "gvisor" as an interim protection measure.
Learn More
Grist-Core, an open-source spreadsheet-database platform, addressed a critical security flaw dubbed "Cellbreak." This vulnerability allows attackers to use malicious formulas to break out of the software's isolated environment. Once the sandbox is breached, an attacker can run commands directly on the host server, effectively taking control of the system.
The flaw is tracked as CVE-2026-24002 (CVSS score 9.1) - A critical sandbox escape in Pyodide that leads to remote code execution.exists in the Pyodide sandbox, which Grist uses to run Python formulas. Researchers found that the sandbox relied on a weak "blocklist" approach to security. Attackers can bypass these restrictions by navigating Python's internal class structure or using the ctypes library to access the underlying Emscripten runtime.
The simplest exploit used ctypes to call system() directly: import ctypes; ctypes.CDLL(None).system(b'whoami') - a single line in a formula cell that executes arbitrary OS commands.
The most powerful method uses emscripten_run_script_string() to run JavaScript in the host Node.js runtime: import ctypes; e = ctypes.CDLL(None).emscripten_run_script_string; e.restype = ctypes.c_char_p; e(b"require('child_process').execSync('env')") - which could exfiltrate environment variables containing database credentials and API keys.
Both exploits could be embedded in a malicious Grist document and would execute automatically when opened, turning a spreadsheet formula into full remote code execution.
Researchers published a PoC video of the exploit.
A successful exploit could allow an attacker to move laterally through a corporate network or steal secrets stored in environment variables.
Grist released version 1.7.9 to fix the issue by moving formula execution into the Deno runtime. Deno provides a more secure, permission-based model that blocks unauthorized system access. Administrators should update immediately or change the GRIST_SANDBOX_FLAVOR setting to "gvisor" to protect their instances.