CVE-2026-24002
Getgrist Grist-Core ≤ 1.7.9
Raw vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:HCVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.
Summary
CVE-2026-24002 is a critical-severity Injection (CWE-74) vulnerability in Getgrist Grist-Core. Its CVSS base score is 9.0 (Critical).
Operationally, ranked at the 43th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.
The strongest mitigations our analysis identified map to SI-10 (Information Input Validation) — see the control section below for these in your framework.
Deeper analysis AI-assisted summary
Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.
CVE-2026-24002 is a sandbox escape vulnerability in Grist, an open-source spreadsheet software that uses Python as its formula language. The issue affects the pyodide-based sandbox method when running on Node.js, which lacks an effective isolation barrier. This allows malicious Python formulas in untrusted spreadsheets to execute arbitrary processes on the hosting server if the `GRIST_SANDBOX_FLAVOR` environment variable is set to `pyodide`. The vulnerability is rated at CVSS 9.0 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H) and is associated with CWE-74 (Improper Neutralization of Special Elements used in an SQL Command).
An attacker can exploit this vulnerability by crafting a malicious Grist document containing Python formulas that escape the pyodide sandbox. Exploitation requires a Grist user or administrator to configure the server with `GRIST_SANDBOX_FLAVOR=pyodide` and then open the document, enabling network-based attacks with no privileges needed but high complexity due to the need for a targeted document. Successful exploitation grants arbitrary code execution on the server, resulting in high confidentiality, integrity, and availability impacts with a changed scope.
The Grist security advisory (GHSA-7xvx-8pf2-pv5g) and documentation confirm the issue is fixed in Grist version 1.7.9 and later by running pyodide under Deno for improved sandboxing. As a workaround, administrators should set `GRIST_SANDBOX_FLAVOR` to `gvisor` to use the gvisor-based sandbox instead.
OWASP Top 10 for Web (2025)
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2026-4212
Vulnerability Data
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…
more
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`.
- CWE(s)
Related Threats
CVEs Like This One
Affected Assets
Mitigating Controls
Mitigating Controls (NIST 800-53 r5) AI
SI-10 directly requires validation of information inputs to reject malformed or special-element content before it reaches downstream parsers.
Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI
Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.
Security testing in development catches injection vulnerabilities before release.
Monitoring activities can identify active injection attacks after they occur.
Secure coding standards require proper neutralization of special elements, directly addressing CWE-74.
Hardening callouts derived
DISA STIG baselines are authored against specific weaknesses. Where this CVE cites a broad weakness class, the mapping is not asserted at that abstraction (owner ruling, 2026-09-25: grade only at Base and below), so no rule is shown here rather than a rule shown against the wrong grain.
- No fine-grained STIG row for CWE-74, a class-level weakness, and none of its children carries one either.