Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister subscriber account
-
DeliveryLoad wp-admin page to obtain nonce
-
ExploitCall dismiss_ajax_call to set profile_image meta
-
ExecutionInject script into display name
-
ImpactAdmin views avatar, payload executes in browser
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated account with subscriber-level access or above (PR:L) - practically meaning the target site must permit user registration or the attacker must otherwise obtain a low-privilege account. Exploitation specifically depends on invoking the nonce-only dismiss_ajax_call endpoint (whose nonce is accessible to subscribers from any wp-admin page) to set the xs_social_profile_image user-meta flag, which activates the unescaped img output branch in xs_social_get_avatar; the payload is then delivered via the account display name, which core's ENT_NOQUOTES handling leaves unescaped. The plugin (Wp Social Login and Register Social Counter ≤3.2.1) must be installed and active. Impact is realized only when another user - ideally a privileged one - views a page rendering the malicious avatar, so a victim must browse to the affected page for the stored script to fire. |
| Impact | This is a moderate-severity stored XSS (CVSS 6.4, CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) that sits well below the top-priority tier despite being network-reachable. The CVSS vector confirms low attack complexity and that only subscriber-level (PR:L) authentication is required, with a scope change (S:C) reflecting that the injected script executes in other users' browser sessions - including potentially administrators. No EPSS score, KEV listing, or public POC was supplied in the intelligence, so exploitation status is 'no public exploit identified at time of analysis'; the finding comes from Wordfence/Wordfence Threat Intel research rather than observed in-the-wild activity. The notable real-world friction is the two-step chaining requirement: an attacker must first abuse the nonce-only dismiss_ajax_call endpoint to set the xs_social_profile_image meta flag, then plant a script payload in their display name. This is a legitimate but conditional self-registered-user attack rather than a wormable, unauthenticated internet-wide threat, so prioritize patching on sites that permit open subscriber registration, but it does not warrant emergency out-of-band response. No signals conflict; the main gap is the absence of EPSS/KEV/POC data to gauge likelihood of weaponization. |
| Exploit ScenarioDerived | On a WordPress site allowing open user registration, an attacker registers a subscriber account, loads any wp-admin page to obtain the accessible nonce, and invokes the dismiss_ajax_call endpoint to set the xs_social_profile_image meta flag on their own account, activating the unescaped avatar img output branch. They then change their display name to a JavaScript payload, which executes in the browser of any user (e.g. an administrator) who views a page rendering that avatar. No public exploit code is identified at time of analysis, but the chain is fully described in the vendor advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 03, 2026
Stored cross-site scripting in the Wp Social Login and Register Social Counter WordPress plugin (all versions up to and including 3.2.1) lets any authenticated account with subscriber-level access or above plant a script payload that executes in the browser of anyone who later views the poisoned avatar. Exploitation is a two-step chain: the attacker first invokes the plugin's nonce-only dismiss_ajax_call AJAX endpoint (the nonce is exposed to subscribers on any wp-admin page) to set the xs_social_profile_image user-meta flag on their own account, then stores a script payload in their display name, which xs_social_get_avatar echoes unescaped into an img alt attribute because WordPress core's ENT_NOQUOTES handling preserves the quotes needed to break out. Scored CVSS 6.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N), it is a moderate-severity issue; no public exploit code has been identified at time of analysis and it is not confirmed actively exploited (CISA KEV), and the impact only materializes when a victim - ideally a privileged user such as an administrator - browses a page rendering the attacker's avatar.
RemediationAI
The upstream fix is referenced by the plugin Trac changeset 3720423 (linked from the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/40e03292-c2dc-4d34-88f4-0d0631e7b981?source=cve), so the primary action is to update Wp Social Login and Register Social Counter past version 3.2.1 as soon as a tagged patched release is published - note that in the available data this is an upstream fix/commit and a released patched version number has not been independently confirmed, so verify the installed version against the plugin's changelog rather than assuming 3.2.1 is patched. If a fixed release is not yet available or cannot be deployed immediately, the highest-value compensating control is to remove the attacker's entry condition: disable public user registration (Settings > General > Membership) or gate it behind invitation/approval, because the exploit requires a subscriber-level account, though this is disruptive for sites whose business model depends on open sign-up. Where social login and avatar display are not needed, deactivating the plugin entirely eliminates both the nonce-only dismiss_ajax_call endpoint and the unescaped xs_social_get_avatar output branch, at the cost of losing those features. Additional hardening: audit the wp_usermeta table for unexpected xs_social_profile_image flags and review display names for quote characters or script-like strings, and consider restricting low-privilege accounts from appearing on page templates that privileged users frequent. Generic XSS WAF signatures offer limited protection here because the payload is stored in the database and emitted as ordinary attribute text; they should be treated as a stopgap, not a substitute for updating or disabling the plugin.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e. cross-site scripting) in the roxnor:wp_social_login_and_register_social_counter plugin (CPE cpe:2.3:a:roxnor:wp_social_login_and_register_social_counter). Two separate weaknesses combine. First, the plugin's dismiss_ajax_call handler in lib/notice/notice.php (around lines 384 and 422) is guarded only by a nonce, not by a capability check, so a low-privileged subscriber can reach it and write the xs_social_profile_image user-meta flag on their own account; that flag switches xs_social_get_avatar in app/avatar.php (around line 40) onto a code branch that emits an <img> tag without escaping its attribute values. Second, the payload itself rides in the WordPress display-name field, which core sanitizes with ENT_NOQUOTES; quote characters survive that filtering, so an attacker-controlled display name injected into the unescaped alt attribute breaks out of the attribute context and injects arbitrary markup/script. Because the malicious output is rendered by the plugin's shortcode/avatar path on pages served to other users, the stored script persists server-side until the account or meta is cleaned, and the CVSS scope-changed (S:C) rating reflects that a subscriber-level compromise can project script execution into the security context of higher-privileged viewers. There is no memory-corruption or remote-code-execution component; this is purely a client-side injection issue requiring an authenticated foothold and a second browsing victim.
Know when Wp Social Login And Register Social Counter gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Network-reachable stored XSS needing only subscriber auth (PR:L, AC:L); script runs in other users' sessions (S:C) with limited confidentiality/integrity impact and no availability effect.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Wp Social Login and Register Social Counter plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Avatar Alt Attribute via Arbitrary User Meta Write in all versions up to, and including, 3.2.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 requires the attacker to chain two steps: invoking the nonce-only dismiss_ajax_call endpoint (nonce accessible to Subscribers via any wp-admin page) to set the xs_social_profile_image meta flag on their own account, which activates the unescaped img output branch in xs_social_get_avatar, and then setting their display name to a script payload that core's ENT_NOQUOTES handling preserves unescaped.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Exposure of Sensitive Information to an Unauthorized Actor vulnerability in Wpmet Wp Social Login and Register Social Co
The Wp Social Login and Register Social Counter plugin for WordPress is vulnerable to unauthorized modification of data
The Wp Social Login and Register Social Counter plugin for WordPress is vulnerable to Cross-Site Request Forgery in all
EUVD-2026-91919
GHSA-hwwg-qpfc-739q
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB