Baserow before 2.3.1 Unauthenticated Data Disclosure via Discarded Permission Check on Builder Data Sources
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-81335
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 7 Nov 2026, 02:51 UTC · Revision 1
Source evidence
Baserow before 2.3.1 Unauthenticated Data Disclosure via Discarded Permission Check on Builder Data Sources
core-osv · Original sourcePublished 27 Aug 2026, 14:50 UTC
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.
osv:CVE-2026-81335
Complete source record
{
"id": "f294bd1197d45d903da5a6b798fb8aeadcfddb4bd95ebdfca5fc51122062598d",
"url": "https://osv.dev/vulnerability/CVE-2026-81335",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Baserow before 2.3.1 Unauthenticated Data Disclosure via Discarded Permission Check on Builder Data Sources",
"summary": "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.",
"evidence": "osv:CVE-2026-81335",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-81335",
"aliases": [
"CVE-2026-81335"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "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"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/baserow/baserow",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "42fec420b6d0266a77e1403036ade3b9a7a3f446"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "2.3.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
}
]
}
}
],
"versions": [
"2.3.0",
"2.2.2",
"2.2.1",
"2.2.0",
"2.1.6",
"2.1.4",
"2.1.3",
"2.1.2",
"2.1.1",
"2.0.6",
"2.0.5",
"2.0.4",
"2.0.3",
"2.0.2",
"2.0.1",
"2.0.0",
"1.35.3",
"1.35.2",
"1.35.1",
"1.35.0",
"1.34.5",
"1.34.4",
"1.34.3",
"1.34.2",
"1.34.1",
"1.34.0",
"1.33.4",
"1.33.3",
"1.33.2",
"1.33.1",
"1.33.0",
"1.32.5",
"1.32.4",
"1.32.3",
"1.32.2",
"1.32.1",
"1.32.0",
"1.31.1",
"1.31.0",
"1.30.1",
"1.30.0",
"1.29.3",
"1.29.2",
"1.29.1",
"1.29.0",
"1.28.0",
"1.27.2",
"1.27.1",
"1.27.0",
"1.26.1",
"1.26.0",
"1.25.2",
"1.25.1",
"1.25.0",
"1.24.2",
"1.24.1",
"1.24.0",
"1.23.2",
"1.23.1",
"1.23.0",
"1.22.3",
"1.22.2",
"1.22.1",
"1.22.0",
"1.21.2",
"1.21.1",
"1.21.0",
"1.20.2",
"1.20.1",
"1.20.0",
"1.19.1",
"1.19.0",
"1.18.0",
"1.17.2",
"1.17.1",
"1.17.0",
"1.16.1-rc1",
"1.16.0",
"1.15.2",
"1.15.1",
"1.15.0",
"1.14.0",
"1.13.3",
"1.13.2",
"1.13.1",
"1.13.0",
"1.12.1",
"1.12.0",
"1.11.0",
"1.10.2",
"1.10.1",
"1.10.0",
"1.9.1",
"1.9",
"1.8.3",
"1.8.2",
"1.8.1",
"1.8.0",
"1.7.1",
"1.7.0",
"1.6.0",
"1.5.0",
"1.4.3",
"1.4.2",
"1.4.1",
"1.4.0",
"1.3.0",
"1.2.0",
"1.1.0",
"1.0.1",
"1.0.0",
"0.8.0",
"0.7.1",
"0.7.0",
"0.6.0",
"0.5.0",
"0.4.0",
"0.3.1",
"0.3.0",
"0.2.0",
"0.1.0",
"0.0.2",
"0.0.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-81335.json"
}
}
],
"modified": "2026-10-28T02:30:49.295724562Z",
"provider": "osv",
"references": [
"https://baserow.io",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81335.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-81335",
"https://www.vulncheck.com/advisories/baserow-before-2.3.1-unauthenticated-data-disclosure-via-discarded-permission-check-on-builder-data-sources",
"https://github.com/bram2w/baserow/blob/2.3.1/backend/src/baserow/contrib/builder/data_sources/service.py",
"https://github.com/bram2w/baserow",
"https://github.com/bram2w/baserow/blob/2.3.0/backend/src/baserow/contrib/builder/data_sources/service.py"
],
"provider_metadata": {
"cwe_ids": [
"CWE-862"
],
"cna_assigner": "VulnCheck",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81335.json"
}
},
"related_cves": [
{
"value": "CVE-2026-81335",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 517514,
"published_at": "2026-08-27T14:50:42.684+00:00"
}