CVE-2026-76837

Baserow before 2.3.0 Stored Cross-Site Scripting via Rich Text Mention Display Name

Published Aug 24, 2026 CVSS 4.0 · 5.3 Medium EPSS < 1% KEV · Not listed
Description
Baserow interpolates a user's display name into the rich-text mention markup without HTML encoding. PATCH /api/user/account/ stores the first_name value verbatim, and the mention renderer in web-frontend/modules/core/editor/mention.js builds its element with a template literal that places the name into a data-label attribute and the element body unescaped. A name containing a double quote closes that attribute and the opening tag, so following markup lands in the element content. The result is rendered through v-html by the rich-text field components, so any rich-text cell mentioning the account executes the stored script for every workspace member who views the table, without a click. Any workspace member, at the lowest permission level, can set the name and reach every other member of the workspace, and the payload persists until the name is changed or the mentioning row is removed. Version 2.3.0 escapes the value before interpolation.

Analysis

AI-generated

Technical impact

Baserow builds rich‑text mention markup by inserting a user's display name directly into a template literal without HTML encoding. A name that contains an escaped double quote terminates the data‑label attribute and the opening tag, allowing an attacker to inject arbitrary <script> tags. When a table that contains the mention is viewed, the rich‑text field renders the unescaped markup via v‑html, causing the embedded script to execute immediately in every member’s browser. Because the payload is stored within the mention, it runs automatically for any workspace member without requiring interaction, enabling malicious code execution or session hijacking for all viewers.

Affected Systems

The vulnerability affects Baserow products before version 2.3.0. Any instance using the 2.2.x series, or earlier releases, is susceptible. The flaw originates in the web‑frontend module where the mention renderer is built, and the server accepts the first_name field without sanitisation. Upgrading to Baserow 2.3.0 or later applies the required escaping and fixes the issue.

Risk and Exploitability

The CVSS score of 5.3 indicates a moderate severity that balances the limited privilege required (any workspace member can change their own display name) against the impact of executing scripts in a user's browser. EPSS data is not available, and the flaw is not listed in CISA’s KEV catalog, but its ease of exploitation makes it an attractive target for malicious insiders or compromised accounts. The attack vector is a local, low‑privilege user who can set a display name; once the crafted name is visible in a rich‑text field, the payload is delivered automatically to all other workspace members. The bug persists until the user’s name is updated or the mention is removed, providing ongoing risk until remedied.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Baserow to version 2.3.0 or later, which escapes the display name before rendering.
  • If upgrading immediately is not feasible, remove or reset the display names of accounts that have been used to create mentions in rich‑text fields to eliminate the stored payload.
  • Remove any rows or cells that reference the vulnerable mention or delete the entire table if it can’t be quickly sanitized.
  • Regularly audit account display names for unusual characters or scripts, and restrict editing privileges for low‑level users as a complementary control.

Generated by OpenCVE AI on August 24, 2026 at 20:33 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
First Time appeared Baserow
Baserow baserow
Vendors & Products Baserow
Baserow baserow
Type Values Removed Values Added
Metrics ssvc

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

Type Values Removed Values Added
Description Baserow interpolates a user's display name into the rich-text mention markup without HTML encoding. PATCH /api/user/account/ stores the first_name value verbatim, and the mention renderer in web-frontend/modules/core/editor/mention.js builds its element with a template literal that places the name into a data-label attribute and the element body unescaped. A name containing a double quote closes that attribute and the opening tag, so following markup lands in the element content. The result is rendered through v-html by the rich-text field components, so any rich-text cell mentioning the account executes the stored script for every workspace member who views the table, without a click. Any workspace member, at the lowest permission level, can set the name and reach every other member of the workspace, and the payload persists until the name is changed or the mentioning row is removed. Version 2.3.0 escapes the value before interpolation.
Title Baserow before 2.3.0 Stored Cross-Site Scripting via Rich Text Mention Display Name
Weaknesses CWE-79
References
Metrics cvssV3_1

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

cvssV4_0

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

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Sources

Status
PUBLISHED
Assigner
VulnCheck
Published
Updated
Aug 29, 2026, 11:47 AM
Reserved
Aug 19, 2026, 8:34 PM
Status
Deferred
Published
Aug 24, 2026, 6:17 PM
Modified
Oct 12, 2026, 10:10 PM