CVE-2026-55665

DOM-based XSS in Grist via unsanitized links, enabling privilege escalation

Published Jul 10, 2026 CVSS 4.0 · 8.5 High EPSS < 1% KEV · Not listed
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.

Analysis

AI-generated

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

Remediation

No solution or workaround provided in the CVE record.

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 August 1, 2026 at 12:02 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

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

Type Values Removed Values Added
First Time appeared Gristlabs
Gristlabs grist-core
Vendors & Products Gristlabs
Gristlabs grist-core
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'}

Weaknesses
  • CWE-79

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

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jul 14, 2026, 2:11 PM
Reserved
Jun 17, 2026, 12:05 AM
Status
Deferred
Published
Jul 10, 2026, 9:16 PM
Modified
Oct 25, 2026, 3:10 PM