{"id":"CVE-2026-81335","title":"Baserow dispatches an Application Builder data source without acting on the result of its permission check","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 permissio…","severity":"high","cvss":7.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","cwe":["CWE-862"],"published":"2026-08-27","updated":"2026-09-23","sourceUpdated":"2026-09-23T17:17:43.477","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-81335","references":[{"url":"https://baserow.io","label":"disclosure@vulncheck.com"},{"url":"https://github.com/bram2w/baserow","label":"disclosure@vulncheck.com"},{"url":"https://github.com/bram2w/baserow/blob/2.3.0/backend/src/baserow/contrib/builder/data_sources/service.py","label":"disclosure@vulncheck.com"},{"url":"https://github.com/bram2w/baserow/blob/2.3.1/backend/src/baserow/contrib/builder/data_sources/service.py","label":"disclosure@vulncheck.com"},{"url":"https://www.vulncheck.com/advisories/baserow-before-2.3.1-unauthenticated-data-disclosure-via-discarded-permission-check-on-builder-data-sources","label":"disclosure@vulncheck.com"}],"tags":["nvd"],"epss":0.00421,"epssPercentile":0.36131,"ingestedAt":"2026-09-23T17:28:14.807Z","slug":"CVE-2026-81335","body":"## Overview\n\nBaserow 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.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":41,"depthScoreParts":{"impact":41.3,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}