---
id: "CVE-2026-111068"
kind: "vulnerability"
aliases: ["CVE-2026-111068"]
title: "DesignSetGo WordPress plugin: stored XSS through tagName parameter"
severity: "medium"
cvss: 4.4
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["designsetgo", "package", "self-hosted", "wordpress"]
not_affected_if: ["no-contributor-accounts", "plugin-not-installed"]
published_at: "2026-10-28T07:16:46+00:00"
first_seen_at: "2026-10-28T07:31:38+00:00"
updated_at: "2026-10-28T07:33:25+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-111068", "first_seen_at": "2026-10-28T07:31:38+00:00"}]
---

# DesignSetGo WordPress plugin: stored XSS through tagName parameter

The DesignSetGo WordPress plugin up to and including 2.11.0 does not sanitize the 'tagName' parameter, so a contributor can store a script that is saved into page content during the plugin's block-conversion migration. When a user opens the injected page, the script runs in their browser.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed DesignSetGo version in the WordPress Plugins screen or with `wp plugin get designsetgo --field=version`
- Look for the plugin's "Scan & Convert Blocks" migration having run on the site (unknown how to confirm from the sources)

## Fix

- Update DesignSetGo to a version later than `2.11.0` (the patched version is unknown from the sources)
- Review pages that contain unexpected script content, especially pages edited by contributors

## Timeline

- 2026-10-28T07:31:38+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-111068

## From the sources

The DesignSetGo plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'tagName' parameter in all versions up to, and including, 2.11.0 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Successful exploitation requires an administrator to run the plugin's block-conversion migration ("Scan & Convert Blocks" during deactivation), which triggers the vulnerable build_group_block() function and promotes the dormant payload from a block delimiter comment into live post_content HTML. Successful exploitation additionally requires an action by an administrator — the attacker cannot trigger the vulnerability on their own.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
