Skip to content
Heist/ feed
Back to feed
Medium

Grist: Insufficient access control in the /forms endpoint exposes table metadata

Type: advisorySources: OSV

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-55664
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 23:03 UTC · Revision 1

Source evidence

Grist: Insufficient access control in the /forms endpoint exposes table metadata

core-osv · Original source

Published 10 Jul 2026, 20:59 UTC

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.

osv:CVE-2026-55664
Complete source record
{
  "id": "62dbc9545adb4da8547bb79e75d4d8f7395dfc788bc69958a54cc61af05b046b",
  "url": "https://osv.dev/vulnerability/CVE-2026-55664",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Grist: Insufficient access control in the /forms endpoint exposes table metadata",
    "summary": "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.",
    "evidence": "osv:CVE-2026-55664",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-55664",
      "aliases": [
        "CVE-2026-55664",
        "GHSA-w2hc-w6cg-xvh9"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/gristlabs/grist-core",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "60447668552eb71de10dc0bf5c71379567e51653"
                },
                {
                  "fixed": "14694156fe99c438c5f7a452ad367e933bb194db"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.7.15"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "14694156fe99c438c5f7a452ad367e933bb194db"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "60447668552eb71de10dc0bf5c71379567e51653"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v1.7.15"
                  }
                ]
              }
            }
          ],
          "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-2026-55664.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:40.183545565Z",
      "provider": "osv",
      "references": [
        "https://github.com/gristlabs/grist-core/releases/tag/v1.7.15",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55664.json",
        "https://github.com/gristlabs/grist-core/security/advisories/GHSA-w2hc-w6cg-xvh9",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-55664",
        "https://github.com/gristlabs/grist-core/commit/14694156fe99c438c5f7a452ad367e933bb194db"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-200",
          "CWE-285"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55664.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-55664",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 507798,
  "published_at": "2026-07-10T20:59:12.603+00:00"
}