CVE-2025-13732
Stored XSS in s2Member Plugin via s2Eot Shortcode
Publication date: 2026-02-19
Last updated on: 2026-02-19
Assigner: Wordfence
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| wordfence | s2member | to 251005 (inc) |
| wordfence | s2member | 2.60101 |
| wp-s2member | s2member | to 251005 (inc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-79 | The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
[{'type': 'paragraph', 'content': "The vulnerability in the s2Member WordPress plugin involves Stored Cross-Site Scripting (XSS) via the 's2Eot' shortcode. This occurs because the plugin does not sufficiently sanitize input or escape output in all versions up to and including 251005. Authenticated attackers with Contributor-level access or higher can inject malicious web scripts into pages using this shortcode. These scripts then execute whenever any user accesses the affected page."}, {'type': 'paragraph', 'content': "The security update in version 2.60101 addresses this by improving input sanitization and normalization of shortcode attributes, including those for 's2Eot', preventing injection of malicious code."}] [1]
How can this vulnerability impact me? :
[{'type': 'paragraph', 'content': "This vulnerability allows attackers with at least Contributor-level access to inject arbitrary scripts into pages via the 's2Eot' shortcode. When other users visit these pages, the injected scripts execute in their browsers, potentially leading to theft of sensitive information, session hijacking, or unauthorized actions performed on behalf of the user."}, {'type': 'paragraph', 'content': 'Because the attack is stored, the malicious code persists on the site and affects all users who access the compromised content.'}] [1]
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
[{'type': 'paragraph', 'content': "This vulnerability involves stored Cross-Site Scripting (XSS) via the 's2Eot' shortcode in the s2Member WordPress plugin. Detection involves identifying if your WordPress site uses the s2Member plugin version 2.51005 or earlier, and if the 's2Eot' shortcode is present in pages or posts."}, {'type': 'paragraph', 'content': "To detect potential exploitation or presence of malicious scripts injected via this vulnerability, you can search your WordPress database for instances of the 's2Eot' shortcode containing suspicious or unexpected script tags."}, {'type': 'list_item', 'content': "Use a database query to find posts or pages containing the 's2Eot' shortcode with suspicious content, for example (run in your WordPress database):\n\nSELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%[s2Eot%<script%';"}, {'type': 'list_item', 'content': "Check for unusual or unexpected JavaScript code in pages that use the 's2Eot' shortcode by viewing the page source in a browser or using tools like curl or wget to fetch page content and grep for script tags."}, {'type': 'list_item', 'content': 'Monitor HTTP traffic for suspicious payloads or unusual POST requests from authenticated users with Contributor-level access or higher, as these users can inject malicious scripts via the shortcode.'}, {'type': 'paragraph', 'content': 'There are no specific commands provided in the resources, but the above database queries and content inspections are practical starting points for detection.'}] [1, 2]
What immediate steps should I take to mitigate this vulnerability?
[{'type': 'paragraph', 'content': "The primary and immediate mitigation step is to upgrade the s2Member plugin to version 2.60101 or later, which includes security updates that fix the input sanitization and output escaping issues related to the 's2Eot' shortcode and other plugin components."}, {'type': 'paragraph', 'content': 'This update enhances sanitization of shortcode attributes, email content, and PayPal notification handling to prevent injection of malicious code.'}, {'type': 'list_item', 'content': 'Backup your WordPress site and database before applying the update.'}, {'type': 'list_item', 'content': 'Update the s2Member plugin via the WordPress admin dashboard or manually by replacing plugin files with the updated version 2.60101.'}, {'type': 'list_item', 'content': 'Review user roles and permissions to ensure only trusted users have Contributor-level access or higher, as these roles can exploit the vulnerability.'}, {'type': 'list_item', 'content': 'Consider scanning your site for injected scripts or malicious content and remove any found.'}, {'type': 'paragraph', 'content': 'Applying the update promptly is critical as the vulnerability allows authenticated users to inject scripts that execute for all visitors.'}] [1]