CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-32734

CVE-2026-32734: DOM-Based Cross-Site Scripting in baserCMS Tag Creation

Alon Barad
Alon Barad
Software Engineer

Mar 31, 2026·7 min read·34 visits

Executive Summary (TL;DR)

A DOM-based XSS flaw in baserCMS < 5.2.3 allows JavaScript execution when dynamically rendering newly created blog tags via an unsafe jQuery `.html()` sink.

baserCMS versions prior to 5.2.3 contain a DOM-based Cross-Site Scripting (XSS) vulnerability within the administrative dashboard's tag creation functionality. The vulnerability stems from the unsafe handling of JSON API responses using jQuery's `.html()` method, allowing attackers to execute arbitrary JavaScript in the context of an administrator's session.

Vulnerability Overview

baserCMS is an open-source website development framework that provides administrative interfaces for content management. Within the blog management component of this administrative dashboard, users with appropriate privileges can dynamically create and assign tags to blog posts. This functionality relies on asynchronous JavaScript (AJAX) to communicate with the backend API and update the Document Object Model (DOM) without requiring a full page reload.

The vulnerability is classified as a DOM-based Cross-Site Scripting (XSS) issue, tracked under CWE-79 and CWE-116. It occurs because the client-side JavaScript receives input from the server and immediately writes it to the page using an unsafe DOM sink. In this specific application context, the vulnerability manifests within the administrative dashboard, meaning any executed payload runs with the privileges of the active user managing the blog content.

DOM-based XSS differs from reflected or stored XSS because the vulnerability exists entirely in the client-side code rather than the server-side response. While the server does return the attacker-controlled string, the actual execution trigger happens only when the browser's JavaScript engine parses that string as HTML. This mechanism bypasses many server-side XSS filters that do not account for client-side rendering vulnerabilities.

Root Cause Analysis

The root cause of this vulnerability lies in the improper handling of user-controlled data within a jQuery DOM manipulation function. Specifically, the application logic responsible for the "Add Blog Tag" feature utilizes the .html() method to insert the name of a newly created tag into a newly generated label element. The vulnerable code path resides in plugins/bc-admin-third/src/bc_blog/js/admin/blog_posts/form.js.

When a user adds a new tag, the frontend application sends a request to the bc-blog/blog_tags/add.json endpoint. The server responds with a JSON object containing the tag's metadata, including the unescaped tag name. The JavaScript success callback then dynamically constructs a new checkbox and label pair to represent this tag in the user interface.

The structural flaw occurs when the script assigns the tag name to the label. By passing result.blogTag.name directly into jQuery's .html() function, the application instructs the browser to parse the string as HTML markup rather than plain text. If the tag name contains valid HTML tags or JavaScript event handlers, the browser's HTML parser will evaluate and execute them upon insertion into the DOM.

Code Analysis and Remediation Logic

The vulnerability is localized to a single file within the application's JavaScript assets. The flaw demonstrates a common anti-pattern in single-page applications and AJAX-heavy interfaces where developer assumptions about data safety lead to unsafe DOM rendering.

The following snippet demonstrates the vulnerable code block prior to the patch. The application constructs a jQuery object representing a <span> element, appends an <input> element, and then appends a <label> element. The critical error happens on the final line of this sequence, where the .html() method processes the unescaped data.

// Vulnerable code in plugins/bc-admin-third/src/bc_blog/js/admin/blog_posts/form.js
success: function (result) {
    if (result) {
        let checkbox = $('<span class="bca-checkbox"/>')
            .append($('<input type="checkbox" name="blog_tags[_ids][]" class="bca-checkbox__input" />')
                .val(result.blogTag.id)
                .attr('id', 'blog-tags-ids-' + result.blogTag.id))
            .append($('<label class="bca-checkbox__label">')
                .attr('for', 'blog-tags-ids-' + result.blogTag.id)
                .html(result.blogTag.name)); // <--- VULNERABLE SINK
        $("#BlogTags").append(checkbox);
    }
}

The vendor resolved this vulnerability in commit 9f0b62481156c5457262981f8ab28cb5aa1d3f6e. The patch replaces the unsafe .html() method with the safe .text() method. Under the hood, jQuery's .text() method uses the browser's native textContent or innerText properties, or explicitly creates a text node using document.createTextNode(). This instructs the browser to treat the input strictly as literal string content, automatically neutralizing any HTML entities and preventing the execution of embedded scripts.

--- a/plugins/bc-admin-third/src/bc_blog/js/admin/blog_posts/form.js
+++ b/plugins/bc-admin-third/src/bc_blog/js/admin/blog_posts/form.js
@@ -119,7 +119,7 @@ $(function () {
                                 .attr('id', 'blog-tags-ids-' + result.blogTag.id))
                             .append($('<label class="bca-checkbox__label">')
                                 .attr('for', 'blog-tags-ids-' + result.blogTag.id)
-                                .html(result.blogTag.name));
+                                .text(result.blogTag.name));
                         $("#BlogTags").append(checkbox);

Exploitation Methodology

Exploiting this DOM-based XSS vulnerability requires the attacker to inject a malicious payload into the tag creation workflow. The primary prerequisite is that the attacker must have the ability to trigger the creation of a new blog tag, or they must convince an authenticated administrator to interact with a crafted link or perform an action that triggers the payload.

The attack begins with the formulation of an HTML payload designed to execute JavaScript upon rendering. Because the payload is inserted directly into the DOM via .html(), standard image vector payloads are highly effective. An attacker would supply a string such as <img src=x onerror=alert(document.domain)> into the tag name input field.

Once the input is submitted, the frontend sends the POST request to the API. The server records the new tag and replies with a JSON response containing the literal string <img src=x onerror=alert(document.domain)>. The vulnerable client-side code receives this JSON, extracts the string, and passes it to the label's .html() method. The browser immediately attempts to render the <img> tag, fails to load the source x, and fires the onerror event handler, executing the provided JavaScript payload within the victim's session.

Impact Assessment

The execution of arbitrary JavaScript within the context of the baserCMS administrative dashboard carries significant security implications. The vulnerability is rated High (CVSS 7.1) due to the scope change and the potential for privilege abuse. Because the payload executes in the browser of an authenticated administrator, the attacker gains the ability to perform actions on behalf of that user.

The most immediate threat is session hijacking. If session tokens are not protected by the HttpOnly flag, the JavaScript payload can extract the administrator's cookies and transmit them to an external server controlled by the attacker. This allows the attacker to impersonate the administrator from their own machine without requiring credentials.

Beyond session theft, the JavaScript payload can directly interact with the baserCMS REST API. An attacker can write a payload that silently issues subsequent AJAX requests to create new administrative accounts, alter site configurations, or modify page templates to embed persistent backdoors. This escalation path turns a localized client-side execution vulnerability into a full system compromise, limited only by the privileges of the victim user.

Remediation and Defensive Strategies

The primary remediation for CVE-2026-32734 is to upgrade the baserCMS installation to version 5.2.3. This version contains the official patch that correctly utilizes the .text() method for DOM insertion, neutralizing the injection vector. System administrators should verify the version number in the CMS dashboard after applying the update to ensure the patch was successful.

In addition to the software upgrade, implementing a robust Content Security Policy (CSP) provides an essential defense-in-depth layer against XSS attacks. A strictly configured CSP that disables inline scripts (script-src 'self') and restricts external resource loading prevents the browser from executing the malicious onerror handler or exfiltrating data, even if the underlying DOM manipulation flaw remains unpatched.

Development teams managing baserCMS deployments should also conduct internal audits of custom plugins or themes. The anti-pattern of passing unvalidated API responses into .html(), .append(), or innerHTML is common. Developers must standardize on using .text() or textContent whenever handling dynamic data originating from users or external APIs to systematically eliminate this class of vulnerabilities.

Official Patches

baserprojectOfficial baserCMS 5.2.3 Release
baserprojectPatch Commit fixing the vulnerability

Fix Analysis (1)

Technical Appendix

CVSS Score
7.1/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
EPSS Probability
0.03%
Top 90% most exploited

Affected Systems

baserCMS Administrative DashboardbaserCMS Blog Management Interface

Affected Versions Detail

Product
Affected Versions
Fixed Version
baserCMS
baserproject
< 5.2.35.2.3
AttributeDetail
CWE IDCWE-79
Attack VectorNetwork
CVSS Score7.1
EPSS Score9.54%
ImpactAdministrative Session Compromise
Exploit StatusProof-of-Concept
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1189Drive-by Compromise
Initial Access
T1185Browser Session Hijacking
Collection
CWE-79
Cross-site Scripting

Improper Neutralization of Input During Web Page Generation

Vulnerability Timeline

Vulnerability patched in the source code
2026-01-20
Vulnerability disclosed by JVN
2026-03-26
CVE-2026-32734 published and GHSA advisory released
2026-03-31

References & Sources

  • [1]GitHub Security Advisory GHSA-677c-xv24-crgx
  • [2]JVN Security Bulletin JVNVU#94952030

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 18 hours ago•CVE-2026-11748
6.9

CVE-2026-11748: Unauthenticated LDAP Injection in Central Dogma Server Authentication

An LDAP injection vulnerability exists in the centraldogma-server-auth-shiro module of LY Corporation Central Dogma before version 0.84.0. The search logic dynamically constructs LDAP search filters by interpolating user-provided usernames without escaping RFC 4515 metacharacters. Unauthenticated remote attackers can leverage this flaw to bypass authentication, enumerate directory hierarchies, and access unauthorized resources.

Alon Barad
Alon Barad
7 views•6 min read
•about 19 hours ago•CVE-2026-11746
9.4

CVE-2026-11746: Use of Hard-coded ZooKeeper Replication Secret 'ch4n63m3' in Central Dogma Server

CVE-2026-11746 is a critical vulnerability in Central Dogma Server prior to version 0.84.0, where an embedded ZooKeeper replication secret silently falls back to a publicly known, hard-coded default string ('ch4n63m3'). Remote attackers with access to the replication network can authenticate as legitimate cluster peers, potentially leading to unauthorized data exposure, state manipulation, or complete cluster takeover.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 20 hours ago•CVE-2026-56665
4.2

CVE-2026-56665: Logical Validation Bypass in ZITADEL External JWT Identity Provider

A logical verification flaw in ZITADEL's external JWT Identity Provider validation allows attackers to bypass session expiration checks. If an incoming JWT lacks the 'exp' claim, the system skips validation entirely, creating an indefinitely valid session. This issue has been addressed in versions 3.4.12 and 4.15.2.

Alon Barad
Alon Barad
4 views•7 min read
•about 21 hours ago•CVE-2026-59149
6.5

CVE-2026-59149: Sibling Directory Path Traversal in Mockoon Backend Server

CVE-2026-59149 identifies a directory traversal vulnerability in `@mockoon/commons-server`, the backend mock-server library powering the Mockoon application. The flaw occurs in the path containment validation logic used during raw file response generation. An unauthenticated attacker can exploit this weakness to retrieve arbitrary files from sibling directories sharing a common prefix with the designated static base directory.

Amit Schendel
Amit Schendel
6 views•5 min read
•about 22 hours ago•CVE-2026-59148
8.8

CVE-2026-59148: Unauthenticated Administrative API and CORS Misconfiguration in Mockoon

An in-depth analysis of CVE-2026-59148, a high-severity flaw in Mockoon where unauthenticated administrative endpoints and a wildcard Cross-Origin Resource Sharing (CORS) policy allow remote execution, state poisoning, and credential theft.

Alon Barad
Alon Barad
7 views•6 min read
•about 23 hours ago•CVE-2026-56666
4.8

CVE-2026-56666: Account Takeover via Improper Email Verification in ZITADEL Federated Identity Handler

An improper authentication vulnerability (CWE-287) in ZITADEL's external identity provider handler before version 4.15.3 allows remote attackers to perform complete account takeover. When auto-linking by email is enabled, ZITADEL verifies that the local target account has a verified email address but fails to verify if the external provider confirmed ownership of that same email. Attackers can exploit this by registering an unverified account with a victim's email address on a permissive external provider, leading to unauthorized account binding and persistent access.

Amit Schendel
Amit Schendel
4 views•7 min read