Press3D Cross Site Scripting Public Advisory(CVE20261985)

Cross Site Scripting (XSS) in WordPress Press3D Plugin





Press3D Stored XSS (CVE-2026-1985) — What WordPress Site Owners Need to Know




Plugin Name Press3D
Type of Vulnerability Cross-Site Scripting (XSS)
CVE Number CVE-2026-1985
Urgency Low
CVE Publish Date 2026-02-13
Source URL CVE-2026-1985

Press3D Stored XSS (CVE-2026-1985) — What WordPress Site Owners Need to Know

Published: 2026-02-13  |  Author: Hong Kong Security Expert

This note provides a concise, technically practical analysis of the Press3D stored cross-site scripting vulnerability disclosed on 13 February 2026 (CVE-2026-1985). It is written from the perspective of an experienced Hong Kong security practitioner for WordPress site owners, administrators and developers who need actionable detection and remediation steps.

Executive summary — in plain terms

  • What it is: Stored XSS in the Press3D plugin’s 3D model block via the link.url attribute.
  • Who can exploit it: An authenticated user with Author privileges (or higher).
  • Why it matters: Script can be saved to site content and executed in visitors’ browsers or when administrators view the page, enabling session theft, admin actions, or further compromise.
  • Short-term mitigation: Deactivate or remove the plugin where possible, scan and sanitize content, rotate credentials, and apply virtual patching or request filtering at the edge.
  • Long-term: Enforce least-privilege for content authors, restrict untrusted HTML insertion, apply Content Security Policy (CSP) and secure cookie flags, and keep plugins updated.

Technical details (what’s happening)

The vulnerability is a classic stored XSS with WordPress-specific context:

  • The Press3D Gutenberg block includes a link.url attribute used for 3D model blocks.
  • Values placed into link.url were not validated or escaped before being saved into post content/block attributes.
  • An Author can craft a link.url containing script, a javascript: URI, a data: URI with script, or HTML entities interpreted by browsers.
  • Because the block data is stored, the malicious content is served to visitors and executes when the block renders — a stored XSS.

Stored XSS can be more damaging than reflected XSS because payloads persist, can target admins, and can remain undetected in content for long periods.

Illustrative proof-of-concept (conceptual only)



Or a malicious javascript: link that executes when clicked:

Click me

Attack scenarios and impact

What an Author-level attacker can accomplish varies by who visits the compromised content:

  • Anonymous visitors: Display malicious overlays, redirect to phishing pages, show unwanted ads, or attempt token/cookie exfiltration when cookies are not properly protected.
  • Moderators / Admins / Editors: If an admin loads a compromised post, a payload may perform actions using the admin session — creating users, changing settings, installing backdoors, or modifying files.
  • SaaS integrations / API tokens: Rendering contexts that expose API tokens or embedded secrets can lead to exfiltration.

Business impacts include account compromise, unnoticed administrative changes, reputation and SEO damage, and potential legal exposure for leaked data.

Why “Author” being the required privilege matters

In WordPress, Authors can create and publish posts. Many sites permit Authors to add links and format content. When a plugin exposes a block attribute that accepts a URL without proper validation, Authors become a pivot for exploitation. Treat inputs from Authors as untrusted.

Immediate actions — checklist for WordPress site owners (first 24–48 hours)

  1. Identify affected installs: confirm whether Press3D is installed and the version is ≤ 1.0.2.
  2. Temporary mitigation: deactivate or remove the plugin. If deactivation is not possible, remove affected 3D model blocks from published content.
  3. Content scan: search for