Description
Baserow dispatches an Application Builder data source without acting on the result of its permission check. The dispatch and record-name views in backend/src/baserow/contrib/builder/api/data_sources/views.py are declared with a permission class that admits any caller, so a request carrying no credential reaches the handler. DataSourceService.dispatch_data_sources in backend/src/baserow/contrib/builder/data_sources/service.py then calls check_multiple_permissions without asking it to raise, and neither stores nor examines the mapping of denials it returns, so a denied check leaves execution to continue and the data source is dispatched whatever the caller's identity. The dispatch runs with the integration's own credentials, so an unauthenticated request naming a data source receives the rows and fields that source reads. Identifiers are small integers and can be enumerated. Version 2.3.1 passes raise_exception to the same call.
Published: 2026-08-27
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Data Disclosure
Action: Immediate Patch
AI Analysis

Impact

Baserow performs an Application Builder data source dispatch without respecting the outcome of a permission check. Because the permission class for the dispatch and record‑name views allows any caller, an unauthenticated request can reach the handler. The subsequent call to check_multiple_permissions does not raise or store denial information, so a denied check is ignored and the data source is dispatched using the integration's own credentials. This allows an unauthenticated client to retrieve rows and fields that the data source reads, resulting in a breach of confidentiality. The weakness is an access control failure (CWE‑862).

Affected Systems

The vulnerability exists in Baserow products running any version prior to 2.3.1, including 2.3.0 and earlier. The issue is tied to the Builder data source dispatch logic in the backend code, so any installation that exposes the Builder API is impacted. Identifiers for data sources are small integers and can be enumerated by a malicious actor.

Risk and Exploitability

The CVSS score of 8.7 signals a high severity vulnerability. Exploitation requires only network access to the Builder data source endpoint and does not depend on user authentication; a simple unauthenticated HTTP request can trigger the flaw. Because EPSS is not available and the issue is not listed in the CISA KEV catalog, the exploitation likelihood is uncertain but the potential impact is significant. The attack vector is external and generic, making this a top priority for patching.

Generated by OpenCVE AI on August 27, 2026 at 18:12 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update to Baserow version 2.3.1 or newer to enable the raised_exception flag in the permission check.
  • Configure the Builder API to require authentication and enforce proper permission checks before dispatching data sources.
  • Disable or restrict the Builder data source dispatch endpoints until the software can be upgraded, or otherwise remove the feature from exposed services.

Generated by OpenCVE AI on August 27, 2026 at 18:12 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 27 Aug 2026 18:00:00 +0000

Type Values Removed Values Added
First Time appeared Baserow
Baserow baserow
Vendors & Products Baserow
Baserow baserow
Metrics ssvc

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


Thu, 27 Aug 2026 16:45:00 +0000

Type Values Removed Values Added
Description Baserow dispatches an Application Builder data source without acting on the result of its permission check. The dispatch and record-name views in backend/src/baserow/contrib/builder/api/data_sources/views.py are declared with a permission class that admits any caller, so a request carrying no credential reaches the handler. DataSourceService.dispatch_data_sources in backend/src/baserow/contrib/builder/data_sources/service.py then calls check_multiple_permissions without asking it to raise, and neither stores nor examines the mapping of denials it returns, so a denied check leaves execution to continue and the data source is dispatched whatever the caller's identity. The dispatch runs with the integration's own credentials, so an unauthenticated request naming a data source receives the rows and fields that source reads. Identifiers are small integers and can be enumerated. Version 2.3.1 passes raise_exception to the same call.
Title Baserow before 2.3.1 Unauthenticated Data Disclosure via Discarded Permission Check on Builder Data Sources
Weaknesses CWE-862
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'}

cvssV4_0

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


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-27T17:59:52.010Z

Reserved: 2026-08-26T17:44:27.173Z

Link: CVE-2026-81335

cve-icon Vulnrichment

Updated: 2026-08-27T17:59:49.209Z

cve-icon NVD

Status : Received

Published: 2026-08-27T17:20:53.850

Modified: 2026-08-27T20:18:50.213

Link: CVE-2026-81335

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-27T18:15:03Z

Weaknesses