Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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.
AnalysisAI
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.
Technical ContextAI
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.
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.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
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
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Same weakness CWE-200 – Information Exposure
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-43046