LiveActive security incident?Get immediate response
CVE Record

CVE-2026-24002: pyodide sandbox option is insecure

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

CriticalCVSS 9.1Not KEV-listedUpdated
Glexia's TakeAutomated analysiscritical

Security readout for executives and security teams

Plain-English summary

Self-managed Grist servers before 1.7.9 are at critical risk only if they use the pyodide sandbox option. A malicious spreadsheet document could cause code to run as arbitrary server processes, threatening confidentiality, integrity, and availability of the Grist host.

Executive priority

Treat as urgent for self-managed Grist environments using pyodide sandboxing. Prioritize version and configuration verification first; upgrade or switch to the documented gvisor workaround where exposure exists.

Technical view

CVE-2026-24002 affects gristlabs grist-core versions before 1.7.9 when GRIST_SANDBOX_FLAVOR is set to pyodide. The advisory states pyodide on node lacks a useful sandbox barrier. Opening a malicious document could allow arbitrary process execution on the Grist server. The fix runs pyodide under deno in 1.7.9+.

Likely exposure

Exposure is limited to self-managed Grist deployments running grist-core below 1.7.9 with GRIST_SANDBOX_FLAVOR=pyodide, especially where users may open untrusted spreadsheets.

Exploitation context

No public source provided here reports active exploitation, and the CVE is not marked KEV. Exploitation requires a malicious Grist document being opened in a vulnerable pyodide-sandboxed deployment, according to the advisory description.

Researcher notes

The public details identify the vulnerable condition and remediation, but do not provide exploitation indicators or reports of active abuse. Avoid assuming all Grist deployments are affected; the key exposure condition is pyodide sandbox configuration on versions before 1.7.9.

Mitigation direction

  • Upgrade grist-core to version 1.7.9 or later.
  • If immediate upgrade is not possible, set GRIST_SANDBOX_FLAVOR to gvisor as vendor-stated workaround.
  • Review Grist self-managed sandbox guidance before changing production settings.
  • Restrict opening of untrusted Grist documents until remediation is complete.

Validation and detection

  • Inventory self-managed Grist instances and record grist-core versions.
  • Check whether GRIST_SANDBOX_FLAVOR is set to pyodide.
  • Confirm upgraded instances report version 1.7.9 or later.
  • Verify sandbox configuration follows current Grist self-managed documentation.
  • Review logs for suspicious activity around recently opened untrusted documents.
Prepared
Confidence
high
Sources
4

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-74: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-24002 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Critical
CVSS
9.1 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
0Timeline events
0ADP providers
3Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
9.1CVSS 3.1CriticalCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H2.26Primary CVE score

Vulnerability scoring details

Base CVSS 3.1 score

9.1Critical
CVSS 3.1 vector shape for CVE-2026-24002Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
gristlabsgrist-core< 1.7.9Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-74 · source CWE mapping

Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')

Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.