Skip to main content

Grist Core CVE-2026-55664

| EUVDEUVD-2026-43046 MEDIUM
Information Exposure (CWE-200)
2026-07-10 GitHub_M
4.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify publicly accessible Grist document
  2. Delivery
    Obtain section ID from document URL or enumeration
  3. Exploit
    Send unauthenticated GET /forms request with target section ID
  4. Execution
    Server returns metadata without access rule evaluation
  5. Persist
    Extract hidden table and column names and types
  6. Impact
    Use schema map for targeted reconnaissance or follow-on access

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires network access to a Grist instance running grist-core prior to 1.7.15. For publicly viewable documents, no authentication is required - public (anonymous) access is sufficient, meaning the effective attack surface includes any internet-facing Grist instance with at least one public document. For non-public documents, a low-privileged account with partial read access to the document is required (CVSS PR:L). The attacker must supply a valid section ID, which can be observed from normal document URLs or enumerated. Exploitation is meaningfully impactful only when the target document has access rules configured to hide specific tables or columns - instances with no access rules configured are not adversely affected by this bypass. The impact is strictly limited to schema metadata (table and column structure); row-level data content is not exposed.

Impact

The official CVSS 3.1 score of 4.3 (Medium) uses PR:L, reflecting that some level of read access is needed. However, the vulnerability description explicitly states exploitation is possible via public access on a publicly viewable document, which implies PR:N is the accurate worst-case metric - a discrepancy worth noting. Real-world risk is elevated for organizations using Grist access rules as a primary mechanism to conceal sensitive schema design (e.g., hidden pricing tables, internal column names, restricted data categories), since the bypass completely undermines that control for any viewer. Impact is bounded to schema metadata only - actual cell data is not exposed - which keeps overall severity in the medium range. No EPSS score was provided in the input, so exploitation probability cannot be quantified. The vulnerability is not in CISA KEV and no POC has been identified, suggesting opportunistic exploitation is not currently occurring. The primary risk is targeted reconnaissance by a low-privileged or anonymous user seeking to map hidden document structure prior to further attacks or data exfiltration attempts.

Exploit ScenarioDerived

An anonymous user browses to a publicly shared Grist document and, by enumerating or guessing section IDs from the document URL, sends a crafted GET /forms request referencing a non-form section. The server returns the full table and column metadata for that section - including names and types of columns the document owner's access rules intended to hide - without requiring authentication or triggering any access rule evaluation. No public exploit code has been identified, but the attack requires only standard HTTP tooling and knowledge of the section ID format observable from normal document interaction.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 10, 2026

Unauthorized schema disclosure in Grist Core prior to 1.7.15 allows any user with partial read access - explicitly including anonymous public users on publicly viewable documents - to retrieve table and column metadata for any widget by querying the GET /forms endpoint. The endpoint failed both to validate that the requested section was a form widget and to apply the document's configured access rules before returning metadata, meaning hidden schema structure (table names, column names, types) is fully exposed regardless of the restrictions in place. No public exploit has been identified and the vulnerability is not in CISA KEV; a vendor-released patch exists in version 1.7.15.

RemediationAI

Upgrade grist-core to version 1.7.15, which is the vendor-confirmed fix per the GitHub release tag at https://github.com/gristlabs/grist-core/releases/tag/v1.7.15 and the security advisory at https://github.com/gristlabs/grist-core/security/advisories/GHSA-w2hc-w6cg-xvh9; the specific patch commit is https://github.com/gristlabs/grist-core/commit/14694156fe99c438c5f7a452ad367e933bb194db. For administrators unable to patch immediately, restricting network-level access to the Grist instance so only trusted, authenticated users can reach the application will eliminate the public-user attack surface; the trade-off is loss of legitimate public document sharing functionality. There is no known configuration toggle to disable the /forms endpoint independently without patching.

Affected VersionsENISA

grist-core < 1.7.15

Affected Packages

euvd grist_core fix: 1.7.15

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Grist is an open-source spreadsheet application (CPE: cpe:2.3:a:gristlabs:grist-core:*:*:*:*:*:*:*:*) that uses Python as its formula language and implements document-level access control rules to restrict which tables and columns particular users may read. The GET /forms endpoint was introduced to serve metadata for form widgets embedded in documents. The root cause is CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor): the endpoint performed no authorization gating - it did not check whether the caller's access rules permitted reading the queried section's metadata, nor did it validate that the referenced section was actually a form widget rather than an arbitrary table/column widget. This allowed the endpoint to function as an unrestricted schema introspection API for any caller who could reach the document at all, including the public.

Know when Python gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 5.3 MEDIUM

The description explicitly includes unauthenticated public users on public documents, warranting PR:N; confidentiality impact is low as only schema metadata, not row data, is disclosed.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Jul 10, 2026 - 22:02 EUVD

DescriptionCVE.org

Grist is spreadsheet software using Python as its formula language. Prior to 1.7.15, the GET /forms endpoint read table and column metadata without applying the document's access rules and did not check that the requested section was actually a form. A user with only partial read access, including public access on a publicly viewable document, could request the metadata of any widget and reveal table and column structure that access rules would otherwise hide, even in documents that contain no forms. This issue is fixed in version 1.7.15.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
niche open-source spreadsheet, limited enterprise production footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy