Skip to content
Heist/ feed
Back to feed
Medium

grist-core has insufficient access control in endpoints for comparisons between documents and versions

Type: advisorySources: OSV

grist-core is a spreadsheet hosting server. Prior to version 1.7.7, a user with only partial read access to a document could still access endpoints listing hashes for versions of that document and receive a full list of changes between versions, even if those changes contained cells, columns, or tables to which the user was not supposed to have read access. This was fixed in version 1.7.7 by restricting the `/compare` endpoint to users with full read access. As a workaround, remove sensitive document history using the `/states/remove` endpoint. Another possibility is to block the `/compare` endpoint.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2025-64753
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 14:06 UTC · Revision 1

Source evidence

grist-core has insufficient access control in endpoints for comparisons between documents and versions

core-osv · Original source

Published 13 Nov 2025, 21:46 UTC

grist-core is a spreadsheet hosting server. Prior to version 1.7.7, a user with only partial read access to a document could still access endpoints listing hashes for versions of that document and receive a full list of changes between versions, even if those changes contained cells, columns, or tables to which the user was not supposed to have read access. This was fixed in version 1.7.7 by restricting the `/compare` endpoint to users with full read access. As a workaround, remove sensitive document history using the `/states/remove` endpoint. Another possibility is to block the `/compare` endpoint.

osv:CVE-2025-64753
Complete source record
{
  "id": "0485ed8df77241d1c039a926fa2536ad6ed410e99370f65f5a3e2ddb2b34053e",
  "url": "https://osv.dev/vulnerability/CVE-2025-64753",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "grist-core has insufficient access control in endpoints for comparisons between documents and versions",
    "summary": "grist-core is a spreadsheet hosting server. Prior to version 1.7.7, a user with only partial read access to a document could still access endpoints listing hashes for versions of that document and receive a full list of changes between versions, even if those changes contained cells, columns, or tables to which the user was not supposed to have read access. This was fixed in version 1.7.7 by restricting the `/compare` endpoint to users with full read access. As a workaround, remove sensitive document history using the `/states/remove` endpoint. Another possibility is to block the `/compare` endpoint.",
    "evidence": "osv:CVE-2025-64753",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2025-64753",
      "aliases": [
        "CVE-2025-64753",
        "GHSA-3v78-cw58-v685"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/gristlabs/grist-core",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "a553efc29d4af1182a9dd258b2264a3778ef10c0"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.7.7"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "a553efc29d4af1182a9dd258b2264a3778ef10c0"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v1.7.7"
                  },
                  {
                    "cpe": "cpe:2.3:a:getgrist:grist-core:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.7.7"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v1.7.1",
            "1.3.2",
            "v1.3.1",
            "1.3.1",
            "v1.3.0",
            "v1.1.16",
            "v0.7.4",
            "v0.7.3",
            "v0.7.2",
            "v0.7.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-64753.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:35.906644963Z",
      "provider": "osv",
      "references": [
        "https://github.com/gristlabs/grist-core/releases/tag/v1.7.7",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/64xxx/CVE-2025-64753.json",
        "https://github.com/gristlabs/grist-core/security/advisories/GHSA-3v78-cw58-v685",
        "https://nvd.nist.gov/vuln/detail/CVE-2025-64753"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-863"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/64xxx/CVE-2025-64753.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2025-64753",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 503451,
  "published_at": "2025-11-13T21:46:00.508+00:00"
}