CVE-2025-13732
Awaiting Analysis Awaiting Analysis - Queue
Stored XSS in s2Member Plugin via s2Eot Shortcode

Publication date: 2026-02-19

Last updated on: 2026-02-19

Assigner: Wordfence

Description
The s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's 's2Eot' shortcode in all versions up to, and including, 251005 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-02-19
Last Modified
2026-02-19
Generated
2026-05-07
AI Q&A
2026-02-19
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 3 associated CPEs
Vendor Product Version / Range
wordfence s2member to 251005 (inc)
wordfence s2member 2.60101
wp-s2member s2member to 251005 (inc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
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]


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart