---
id: "CVE-2026-120550"
page: "https://infrastack.ai/live/CVE-2026-120550"
kind: "vulnerability"
aliases: ["CVE-2026-120550"]
title: "WP User Manager WordPress plugin: stored XSS via display name"
severity: "medium"
cvss: 6.4
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["package", "self-hosted", "wordpress", "wp-user-manager"]
not_affected_if: ["plugin-not-installed", "registration-closed", "version-above-2.10.2"]
published_at: "2026-11-06T10:16:37+00:00"
first_seen_at: "2026-11-06T10:40:56+00:00"
updated_at: "2026-11-06T10:41:21+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-120550", "first_seen_at": "2026-11-06T10:40:56+00:00"}]
exploit_sources: []
---

# WP User Manager WordPress plugin: stored XSS via display name

Link for people: https://infrastack.ai/live/CVE-2026-120550 (this .md is for agents)

The WP User Manager plugin for WordPress up to and including 2.10.2 does not sanitize the display name saved through the core REST users endpoint. An authenticated subscriber can store a script in their display name that runs in the browser of anyone who views the injected page.

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

## How to check

- Check the installed version of the WP User Manager plugin in the WordPress admin plugins list, or in the plugin's header in `wp-content/plugins/wp-user-manager/`
- Confirm whether subscriber-level accounts can self-register on the site

## Fix

- WP User Manager: a version later than `2.10.2` (fixed version not stated in the sources)

## Timeline

- 2026-11-06T10:40:56+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-120550

## From the sources

The WP User Manager – Registration Form, Login Form, User Profile Builder & Member Directory plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'name (REST users endpoint) -> wp_users.display_name' parameter in all versions up to, and including, 2.10.2 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The payload is stored via the WordPress core REST endpoint POST /wp-json/wp/v2/users/me, which bypasses the plugin's own wpum_sanitize_text sanitizer applied on its front-end account form, making the save-time sanitization ineffective as a mitigation.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
