Description
Grist is spreadsheet software using Python as its formula language. Prior to 1.7.15, Grist contained two cross-site scripting vulnerabilities where an attacker-controlled value reached a link's href without scheme validation, so a javascript URL could run in a victim's Grist origin on a single click. On the account-selection page, /welcome/select-account used its next query parameter as the account buttons' link target. In document tours, the GristDocTour table's Link_URL column became a clickable button, allowing an editor of a shared document to store a javascript URL there that ran when another user opened the document and clicked the tour link. Because the script runs in the victim's authenticated session, it can call Grist APIs as the victim, reading or modifying data and changing sharing settings and access rules. A document editor could therefore escalate to owner-level access. This issue is fixed in version 1.7.15.
Published: 2026-07-10
Score: 8.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability allows an attacker to inject an unsanitized javascript URL that is executed within the victim’s authenticated session. Because the code runs with the victim’s privileges, the attacker can call Grist APIs to read, modify, or delete data and change sharing settings, effectively elevating from an editor to an owner of the document.

Affected Systems

Grist Core versions earlier than 1.7.15 are affected. The flaw appears in the account-selection page where the next query parameter becomes a link target, and in document tours where the GristDocTour table’s Link_URL column turns into a clickable button. Users of Grist Core before the 1.7.15 release are therefore at risk; platform details are not specified.

Risk and Exploitability

The CVSS score of 8.5 indicates a high severity. The EPSS score of < 1% implies a very low but non‑zero probability of exploitation, and the vulnerability is not listed in the CISA KEV catalog, but the complexity of exploitation is low for a user with access to the document tour or account selection pages. An attacker only needs to inject a malicious javascript URL into a shared document or influence a user’s account selection; no remote network access is required. Once the victim clicks the link, the attacker’s code runs with full authenticated privileges, potentially leading to large‑scale data exfiltration or authority abuse.

Generated by OpenCVE AI on July 29, 2026 at 10:00 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Grist Core to version 1.7.15 or later, which removes the unsanitized link handling
  • Implement server‑side validation to reject URLs that do not use http:// or https:// schemes in all user‑supplied link fields
  • Audit and revoke any user accounts exposed to suspicious shared documents, then monitor logs for unexpected API activity

Generated by OpenCVE AI on July 29, 2026 at 10:00 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 14 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 10 Jul 2026 22:45:00 +0000

Type Values Removed Values Added
First Time appeared Gristlabs
Gristlabs grist-core
Vendors & Products Gristlabs
Gristlabs grist-core

Fri, 10 Jul 2026 21:15:00 +0000

Type Values Removed Values Added
Description Grist is spreadsheet software using Python as its formula language. Prior to 1.7.15, Grist contained two cross-site scripting vulnerabilities where an attacker-controlled value reached a link's href without scheme validation, so a javascript URL could run in a victim's Grist origin on a single click. On the account-selection page, /welcome/select-account used its next query parameter as the account buttons' link target. In document tours, the GristDocTour table's Link_URL column became a clickable button, allowing an editor of a shared document to store a javascript URL there that ran when another user opened the document and clicked the tour link. Because the script runs in the victim's authenticated session, it can call Grist APIs as the victim, reading or modifying data and changing sharing settings and access rules. A document editor could therefore escalate to owner-level access. This issue is fixed in version 1.7.15.
Title DOM-based XSS in Grist via unsanitized links, enabling privilege escalation
Weaknesses CWE-79
References
Metrics cvssV4_0

{'score': 8.5, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Gristlabs Grist-core
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-14T14:11:49.064Z

Reserved: 2026-06-17T00:05:03.777Z

Link: CVE-2026-55665

cve-icon Vulnrichment

Updated: 2026-07-14T14:11:45.610Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-29T10:00:15Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')