Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-84701

CVE-2026-84701: NocoBase XSS Vulnerability

CVE-2026-84701 is a cross-site scripting flaw in NocoBase that enables attackers to inject malicious HTML through rich text fields. This post explains its impact, affected versions, and mitigation steps.

Published:

CVE-2026-84701 Overview

CVE-2026-84701 is a stored Cross-Site Scripting (XSS) vulnerability [CWE-79] in NocoBase, an open-source no-code development platform. The application fails to sanitize rich text field values in the read renderer. Users with create permissions can submit HTML containing event handlers through the collection API. When any other user views the affected record, the injected markup executes in their browser context.

The flaw resides in the ReadPretty.tsx component, which renders stored rich text without adequate output encoding. Because the payload persists in the database, every subsequent viewer of the record is exposed to the attacker-controlled script.

Critical Impact

Authenticated attackers can persist arbitrary JavaScript that executes in the browsers of all users viewing the affected record, enabling session theft, credential harvesting, and actions performed on behalf of higher-privileged users.

Affected Products

  • NocoBase (open-source no-code platform)
  • NocoBase client package @nocobase/client through version 2.2.5
  • Deployments exposing rich text fields to authenticated users with create permissions

Discovery Timeline

  • 2026-09-02 - CVE-2026-84701 published to NVD
  • 2026-09-02 - Last updated in NVD database

Technical Details for CVE-2026-84701

Vulnerability Analysis

The vulnerability is a stored XSS [CWE-79] affecting the rich text field type in NocoBase. The rendering path in packages/core/client/src/schema-component/antd/input/ReadPretty.tsx writes user-supplied field content into the DOM without stripping active markup. Any HTML element that supports event handler attributes, such as onerror, onmouseover, or onload, will trigger JavaScript execution when the record is displayed.

Exploitation requires a low-privilege authenticated account with permission to create or update records containing a rich text field. The attacker submits a crafted payload through the standard collection REST API. The server stores the payload verbatim. When a second user, including administrators, opens the record view, the browser parses the injected markup and runs the attacker's script in the origin of the NocoBase application.

Because execution occurs in the victim's authenticated session, an attacker can exfiltrate session tokens, issue authenticated API calls, modify collections, or pivot to escalate privileges. User interaction is limited to viewing the affected record.

Root Cause

The root cause is missing output sanitization in the read-mode renderer for rich text fields. The component treats stored field values as trusted HTML and injects them directly into the rendered view. There is no allowlist of safe tags or attributes, and no removal of inline event handler attributes before rendering.

Attack Vector

The attack vector is network-based and authenticated. An attacker with a create-permission role posts a malicious HTML payload to the collection API endpoint that backs a rich text field. Any user, including higher-privileged users, who later views the record triggers execution of the stored script.

See the Vulncheck advisory for NocoBase and the ReadPretty component source for the affected code path. Tracking is available in GitHub Issue #10416.

Detection Methods for CVE-2026-84701

Indicators of Compromise

  • Rich text field values in the collection database that contain <script> tags, javascript: URIs, or inline event handler attributes such as onerror=, onload=, onmouseover=, or onfocus=.
  • Outbound requests from browsers of authenticated NocoBase users to unfamiliar external hosts shortly after opening a record.
  • Unexpected authenticated API activity originating from administrator sessions after viewing user-created records.

Detection Strategies

  • Query the underlying database for rich text columns and match values against a regular expression covering HTML tags and on\w+= attribute patterns.
  • Enable a Content Security Policy (CSP) in report-only mode to log inline script violations from the NocoBase origin.
  • Review web server access logs for POST and PATCH requests to /api/* collection endpoints containing raw HTML payloads with event handlers.

Monitoring Recommendations

  • Alert on browser CSP violation reports referencing inline event handlers on NocoBase pages.
  • Monitor authenticated API traffic for anomalous request volumes originating from a single session after record views.
  • Audit role assignments so that only trusted principals hold create permissions on collections containing rich text fields.

How to Mitigate CVE-2026-84701

Immediate Actions Required

  • Upgrade NocoBase to a release that patches the ReadPretty rich text renderer once the maintainers publish a fixed version. Track the NocoBase GitHub repository for advisories.
  • Restrict create and update permissions on collections containing rich text fields to trusted roles only.
  • Deploy a strict Content Security Policy that blocks inline scripts and inline event handlers on the NocoBase origin.

Patch Information

As of the NVD publication date, no fixed version is referenced in the CVE record. Consult the Vulncheck advisory and GitHub Issue #10416 for status updates from the NocoBase maintainers. Affected code is present in @nocobase/client version 2.2.5.

Workarounds

  • Replace rich text fields with plain text fields on collections that accept input from low-privilege users until a patch is available.
  • Introduce a server-side sanitization layer, such as DOMPurify, that strips event handler attributes and script tags from rich text values before persistence.
  • Sanitize existing stored values by scanning the database and removing HTML that contains on\w+= attributes or <script> tags.
  • Enforce a Content Security Policy header such as Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self' to prevent execution of inline handlers.

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.