CVE-2026-19754

Baserow 2.2.0 through 2.3.3 - SQL injection in formula index() JSONB array extraction

Published Sep 2, 2026 CVSS 4.0 · 8.6 High EPSS < 1% KEV · Not listed
Description
Baserow versions 2.2.0 through 2.3.3 contain an SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify Formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The generated SQL executes through Baserow's database connection with the Baserow PostgreSQL role permissions, allowing data outside the user's workspace permissions to be read or modified.

Remediation

Vendor Solution

Upgrade to Baserow 2.3.4 or later. The patch rejects user-supplied four-argument index() formulas and restricts legacy internal SQL templates to an allowlist. Verify the deployed version and run Formula-field regression tests before restoring Formula-field editing permissions.


Vendor Workaround

Until the upgrade is complete, restrict Formula-field creation and modification to trusted users. Identify Formula definitions containing a fourth index() argument, review database activity for unexpected SQL execution, and rotate database credentials if compromise is suspected.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Description Baserow versions 2.2.0 through 2.3.3 contain an SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify Formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The vulnerable expression is executed when Baserow recalculates Formula-field values. Because the generated SQL runs through Baserow's database connection, the injected SQL executes with the privileges of the Baserow PostgreSQL role rather than the permissions of the authenticated application user, allowing data to be read or modified outside the user's workspace permissions. Baserow versions 2.2.0 through 2.3.3 contain an SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify Formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The generated SQL executes through Baserow's database connection with the Baserow PostgreSQL role permissions, allowing data outside the user's workspace permissions to be read or modified.
References
Type Values Removed Values Added
Description Baserow versions 2.2.0 through 2.3.3 contain an SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify Formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The vulnerable expression is executed when Baserow recalculates Formula-field values. Because the generated SQL runs through Baserow's database connection, the injected SQL executes with the privileges of the Baserow PostgreSQL role rather than the permissions of the authenticated application user, allowing data to be read or modified outside the user's workspace permissions. Baserow versions 2.2.0 through 2.3.3 contain an SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify Formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The vulnerable expression is executed when Baserow recalculates Formula-field values. Because the generated SQL runs through Baserow's database connection, the injected SQL executes with the privileges of the Baserow PostgreSQL role rather than the permissions of the authenticated application user, allowing data to be read or modified outside the user's workspace permissions.
Type Values Removed Values Added
CPEs cpe:2.3:a:baserow:baserow:*:*:*:*:*:*:*:* cpe:2.3:a:baserow:baserow:*:*:linux:*:*:*:*:*
cpe:2.3:a:baserow:baserow:*:*:macos:*:*:*:*:*
cpe:2.3:a:baserow:baserow:*:*:windows:*:*:*:*:*
Type Values Removed Values Added
Description Baserow versions 2.2.0 through 2.3.3 contain an SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify Formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The vulnerable expression is executed when Baserow recalculates Formula-field values. Because the generated SQL runs through Baserow's database connection, the injected SQL executes with the privileges of the Baserow PostgreSQL role rather than the permissions of the authenticated application user, allowing data to be read or modified outside the user's workspace permissions. Baserow versions 2.2.0 through 2.3.3 contain an SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify Formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The vulnerable expression is executed when Baserow recalculates Formula-field values. Because the generated SQL runs through Baserow's database connection, the injected SQL executes with the privileges of the Baserow PostgreSQL role rather than the permissions of the authenticated application user, allowing data to be read or modified outside the user's workspace permissions.
Type Values Removed Values Added
Description Baserow versions 2.2.0 through 2.3.3 contain an SQL injection vulnerability in the index() formula function. An authenticated user who can create or edit Formula fields can pass an undocumented fourth argument. Baserow inserts this argument into a PostgreSQL expression. The injected SQL runs with the Baserow database role permissions and can read or modify database data outside the user's workspace permissions. Baserow versions 2.2.0 through 2.3.3 contain an SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify Formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The vulnerable expression is executed when Baserow recalculates Formula-field values. Because the generated SQL runs through Baserow's database connection, the injected SQL executes with the privileges of the Baserow PostgreSQL role rather than the permissions of the authenticated application user, allowing data to be read or modified outside the user's workspace permissions.
Type Values Removed Values Added
Description Baserow 2.3.3 contains a SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The vulnerable expression is executed when Baserow recalculates formula field values. Because the generated SQL runs through Baserow's database connection, the injected SQL executes with the privileges of the Baserow PostgreSQL role rather than the permissions of the authenticated application user. This issue affects Baserow: 2.3.3. Baserow versions 2.2.0 through 2.3.3 contain an SQL injection vulnerability in the index() formula function. An authenticated user who can create or edit Formula fields can pass an undocumented fourth argument. Baserow inserts this argument into a PostgreSQL expression. The injected SQL runs with the Baserow database role permissions and can read or modify database data outside the user's workspace permissions.
Title Baserow 2.3.3 - SQL injection in formula index() JSONB array extraction Baserow 2.2.0 through 2.3.3 - SQL injection in formula index() JSONB array extraction
CPEs cpe:2.3:a:baserow:baserow:2.3.3:*:linux:*:*:*:*:*
cpe:2.3:a:baserow:baserow:2.3.3:*:macos:*:*:*:*:*
cpe:2.3:a:baserow:baserow:2.3.3:*:windows:*:*:*:*:*
cpe:2.3:a:baserow:baserow:*:*:*:*:*:*:*:*
References
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description Baserow 2.3.3 contains a SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The vulnerable expression is executed when Baserow recalculates formula field values. Because the generated SQL runs through Baserow's database connection, the injected SQL executes with the privileges of the Baserow PostgreSQL role rather than the permissions of the authenticated application user. This issue affects Baserow: 2.3.3. Baserow 2.3.3 contains a SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The vulnerable expression is executed when Baserow recalculates formula field values. Because the generated SQL runs through Baserow's database connection, the injected SQL executes with the privileges of the Baserow PostgreSQL role rather than the permissions of the authenticated application user. This issue affects Baserow: 2.3.3.
Type Values Removed Values Added
Description Baserow 2.3.3 contains a SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The vulnerable expression is executed when Baserow recalculates formula field values. Because the generated SQL runs through Baserow's database connection, the injected SQL executes with the privileges of the Baserow PostgreSQL role rather than the permissions of the authenticated application user. This issue affects Baserow: 2.3.3.
Title Baserow 2.3.3 - SQL injection in formula index() JSONB array extraction
First Time appeared Baserow
Baserow baserow
Weaknesses CWE-89
CPEs cpe:2.3:a:baserow:baserow:2.3.3:*:linux:*:*:*:*:*
cpe:2.3:a:baserow:baserow:2.3.3:*:macos:*:*:*:*:*
cpe:2.3:a:baserow:baserow:2.3.3:*:windows:*:*:*:*:*
Vendors & Products Baserow
Baserow baserow
References
Metrics cvssV4_0

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

Weaknesses

Sources

Status
PUBLISHED
Assigner
Fluid Attacks
Published
Updated
Oct 23, 2026, 6:30 PM
Reserved
Aug 13, 2026, 3:37 PM
Status
Awaiting Analysis
Published
Sep 2, 2026, 4:17 AM
Modified
Oct 23, 2026, 7:17 PM