Skip to content
Heist/ feed
Back to feed
Medium

Chartbrew: SQL Injection via row_limit Parameter in AI runQuery Tool

Type: advisorySources: OSV

Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create charts. Prior to 5.2.2, Chartbrew's runQuery() implementation in server/modules/ai/orchestrator/tools/runQuery.js interpolates the AI tool's row_limit parameter into a SQL LIMIT clause without runtime integer validation. The read-only keyword check runs before this value is appended, so an authenticated user who can influence a model-generated non-integer row_limit can add SQL that bypasses the earlier check. Successful exploitation can execute arbitrary statements against the connected database, including reading or changing data and, where database permissions permit, accessing files or executing operating-system commands. This issue is fixed in version 5.2.2.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-61852
Confirmed fixed CVEs
Not specified
Updated in this feed
2 Nov 2026, 18:46 UTC · Revision 1

Source evidence

Chartbrew: SQL Injection via row_limit Parameter in AI runQuery Tool

core-osv · Original source

Published 21 Sept 2026, 21:39 UTC

Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create charts. Prior to 5.2.2, Chartbrew's runQuery() implementation in server/modules/ai/orchestrator/tools/runQuery.js interpolates the AI tool's row_limit parameter into a SQL LIMIT clause without runtime integer validation. The read-only keyword check runs before this value is appended, so an authenticated user who can influence a model-generated non-integer row_limit can add SQL that bypasses the earlier check. Successful exploitation can execute arbitrary statements against the connected database, including reading or changing data and, where database permissions permit, accessing files or executing operating-system commands. This issue is fixed in version 5.2.2.

osv:CVE-2026-61852
Complete source record
{
  "id": "673eb4573c86d1881ac4b824f8443a1c4ea13eb7a6ea8754592bdf8b34a82246",
  "url": "https://osv.dev/vulnerability/CVE-2026-61852",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Chartbrew: SQL Injection via row_limit Parameter in AI runQuery Tool",
    "summary": "Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create charts. Prior to 5.2.2, Chartbrew's runQuery() implementation in server/modules/ai/orchestrator/tools/runQuery.js interpolates the AI tool's row_limit parameter into a SQL LIMIT clause without runtime integer validation. The read-only keyword check runs before this value is appended, so an authenticated user who can influence a model-generated non-integer row_limit can add SQL that bypasses the earlier check. Successful exploitation can execute arbitrary statements against the connected database, including reading or changing data and, where database permissions permit, accessing files or executing operating-system commands. This issue is fixed in version 5.2.2.",
    "evidence": "osv:CVE-2026-61852",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-61852",
      "aliases": [
        "CVE-2026-61852",
        "GHSA-4923-m569-jc42"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/chartbrew/chartbrew",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "e14ffa0705586f27a19e051d74263fa0a7f94426"
                },
                {
                  "fixed": "8c8412edce56093e81b524e0235a796c7dd42336"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "5.2.2"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "8c8412edce56093e81b524e0235a796c7dd42336"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "e14ffa0705586f27a19e051d74263fa0a7f94426"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v5.2.2"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v5.2.1",
            "v5.2.0",
            "v5.1.0",
            "v5.0.1",
            "v5.0.0",
            "v4.9.0",
            "v4.8.5",
            "v4.8.4",
            "v4.8.3",
            "v4.8.2",
            "v4.8.1",
            "v4.8.0",
            "v4.7.0",
            "v4.6.0",
            "v4.5.0",
            "v4.4.0",
            "v4.3.0",
            "v4.2.1",
            "v4.2.0",
            "v4.1.0",
            "v4.0.1",
            "v4.0.0",
            "v3.13.0",
            "v3.12.0",
            "v3.11.1",
            "v3.11.0",
            "v3.10.0",
            "v3.9.0",
            "v3.8.2",
            "v3.8.1",
            "v3.8.0",
            "v3.7.0",
            "v3.6.0",
            "v3.5.2",
            "v3.5.1",
            "v3.5.0",
            "v3.3.0",
            "v3.2.1",
            "v3.2.0",
            "v3.1.1",
            "v3.1.0",
            "v3.0.0",
            "v3.0.0-beta.3",
            "v3.0.0-beta.2",
            "v3.0.0-beta.1",
            "v2.8.0",
            "v2.7.0",
            "v2.6.2",
            "v2.6.1",
            "v2.6.0",
            "v2.5.1",
            "v2.5.0",
            "v2.4.0",
            "v2.3.0",
            "v2.2.0",
            "v2.1.0",
            "v2.0.0",
            "v2.0.0-rc.2",
            "v2.0.0-rc.1",
            "v1.21.1",
            "v1.21.0",
            "v1.20.2",
            "v1.20.1",
            "v1.20.0",
            "v1.19.1",
            "v1.19.0",
            "v1.18.1",
            "v1.18.0",
            "v1.17.2",
            "v1.17.1",
            "v1.17.0",
            "v1.16.2",
            "v1.16.1",
            "v1.16.0",
            "v1.15.0",
            "v1.14.2",
            "v1.14.1",
            "v1.14.0",
            "v1.13.0",
            "v1.11.1",
            "v1.11.0",
            "v1.10.0",
            "v1.9.3",
            "v1.9.2",
            "v1.9.1",
            "v1.9.0",
            "v1.8.1",
            "v1.8.0",
            "v1.7.1",
            "v1.7.0",
            "v1.6.2",
            "v1.6.1",
            "v1.6.0",
            "v1.5.3",
            "v1.5.1",
            "v1.5.0",
            "v1.4.0",
            "v1.3.1",
            "v1.3.0",
            "v1.2.0",
            "v1.1.1",
            "v1.1.0",
            "v1.0.0",
            "v1.0.0-beta.13",
            "v1.0.0-beta.11",
            "v1.0.0-beta.10",
            "v1.0.0-beta.9.3",
            "v1.0.0-beta.9.2",
            "v1.0.0-beta.9.1",
            "v1.0.0-beta.9",
            "v1.0.0-beta.8.1",
            "v1.0.0-beta.8",
            "v1.0.0-beta.7",
            "v1.0.0-beta.6",
            "v1.0.0-beta.5.6",
            "v1.0.0-beta.5.5",
            "v1.0.0-beta.5.4",
            "v1.0.0-beta.5.2",
            "v1.0.0-beta.5.1",
            "v1.0.0-beta.5",
            "v1.0.0-beta.4.2",
            "v1.0.0-beta.4.1",
            "v1.0.0-beta.4",
            "v1.0.0-beta.3",
            "v1.0.0-beta.2.3",
            "v1.0.0-beta.2.2",
            "v1.0.0-beta.2.1",
            "v1.0.0-beta.2",
            "v1.0.0-beta.1.1",
            "v1.0.0-beta.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-61852.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:22.268959110Z",
      "provider": "osv",
      "references": [
        "https://github.com/chartbrew/chartbrew/releases/tag/v5.2.2",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/61xxx/CVE-2026-61852.json",
        "https://github.com/chartbrew/chartbrew/security/advisories/GHSA-4923-m569-jc42",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-61852",
        "https://github.com/chartbrew/chartbrew/commit/8c8412edce56093e81b524e0235a796c7dd42336"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-89"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/61xxx/CVE-2026-61852.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-61852",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 488699,
  "published_at": "2026-09-21T21:39:52.579+00:00"
}