CVE-2026-18547
Ultimate Member <= 2.12.1 - Authenticated (Subscriber+) Stored Cross-Site Scripting via Textarea Profile Field with HTML Support (DOM Gadget via id Attribute)
- Published
- Updated
- Reserved
- Assigned by
- Wordfence
Description
The Ultimate Member – User Profile, Registration, Login, Member Directory, Content Restriction & Membership Plugin plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Textarea Profile Field with HTML Support (DOM Gadget via id Attribute) in all versions up to, and including, 2.12.1 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. This is possible because the wp_kses 'templates' allowlist permits the id attribute on div elements but does not neutralize unescaped quotes within its value; when pickadate.js concatenates the stored id value into an HTML string via jQuery .html() on profile page load, the smuggled onfocus and autofocus attribute syntax breaks out of attribute context and executes as JavaScript.
Scores
| Scored by | CVSS | Score | Vector |
|---|---|---|---|
| WordfenceCNA (assigner) | 3.1 | Medium6.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N |
| NVDNVD · Deferred | 3.1 | Medium6.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N |
- EPSS (exploitation in 30 days)
- 0.36% · top 70% of all CVEs (6 Nov 2026)
- CISA SSVC
- Exploitation: none · Automatable: no · Technical impact: partial
The list uses the assigner's score when there is one, then CISA's, then NVD's: Medium 6.4.
Weakness
Affected products
References (8)
- https://www.wordfence.com/threat-intel/vulnerabilities/id/a7961bcc-eae7-40e1-8838-9755c7655500?source=cve (opens in a new tab)
- https://plugins.trac.wordpress.org/browser/ultimate-member/tags/2.12.1/includes/core/class-form.php#L853 (opens in a new tab)
- https://plugins.trac.wordpress.org/browser/ultimate-member/tags/2.12.1/includes/class-functions.php#L580 (opens in a new tab)
- https://plugins.trac.wordpress.org/browser/ultimate-member/tags/2.12.1/assets/js/common.js#L51 (opens in a new tab)
- https://plugins.trac.wordpress.org/browser/ultimate-member/tags/2.11.4/includes/core/class-form.php#L853 (opens in a new tab)
- https://plugins.trac.wordpress.org/browser/ultimate-member/tags/2.11.4/includes/class-functions.php#L580 (opens in a new tab)
- https://plugins.trac.wordpress.org/browser/ultimate-member/tags/2.11.4/assets/js/common.js#L51 (opens in a new tab)
- https://plugins.trac.wordpress.org/changeset?reponame=&old=3663931%40ultimate-member&new=3663931%40ultimate-member (opens in a new tab)
Sources
The same CVE in the primary databases and aggregators, to check against.
- CVE.org record (opens in a new tab)
- CVE List JSON (GitHub) (opens in a new tab)
- NVD (opens in a new tab)
- FIRST EPSS (opens in a new tab)
- OSV.dev (opens in a new tab)
- GitHub Advisories (opens in a new tab)
- CIRCL Vulnerability-Lookup (opens in a new tab)
Badge for a README or a ticket
[](https://trackcve.app/cve/CVE-2026-18547)Record last updated .