{"id":"CVE-2026-109972","title":"s2Member <= 261011 - Authenticated (Contributor+) Stored Cross-Site Scripting via 'date_format' Shortcode Attribute","summary":"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 'date_format' parameter in all versions up to, an…","severity":"medium","cvss":6.4,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","cvssSource":"cna","cwe":["CWE-79"],"vendor":"clavaque","product":"s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions","affected":["s2member_excellent_for_all_kinds_of_memberships_content_restriction_paywalls_member_access_subscriptions <= 261011"],"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"partial","timestamp":"2026-10-28T14:36:07.974395Z"},"published":"2026-10-28","updated":"2026-10-28","sourceUpdated":"2026-10-28T16:10:21.905Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-109972","references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/2782f0f7-625d-4141-8e2c-4bdaa0219007?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/s2member/trunk/src/includes/classes/sc-gets-in.inc.php#L119"},{"url":"https://plugins.trac.wordpress.org/browser/s2member/trunk/src/includes/classes/sc-gets-in.inc.php#L98"},{"url":"https://plugins.trac.wordpress.org/browser/s2member/trunk/src/includes/classes/sc-gets-in.inc.php#L53"},{"url":"https://plugins.trac.wordpress.org/browser/s2member/trunk/src/includes/codes.inc.php#L24"},{"url":"https://plugins.trac.wordpress.org/changeset/3751344/s2member/trunk/src/includes/classes/sc-gets-in.inc.php"}],"tags":["cve.org"],"epss":0.00275,"epssPercentile":0.19816,"ingestedAt":"2026-10-28T07:06:27.125Z","slug":"CVE-2026-109972","body":"## Overview\n\nThe 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 'date_format' parameter in all versions up to, and including, <= 261011 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. The payload bypasses wp_kses_post() on save because it contains no literal angle brackets — only backslash-escaped sequences that PHP's date() materializes into HTML tag characters at render time after WordPress's shortcode_parse_atts() applies stripcslashes() to the attribute value.\n\n## Affected\n\n- `s2member_excellent_for_all_kinds_of_memberships_content_restriction_paywalls_member_access_subscriptions <= 261011`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":35,"depthScoreParts":{"impact":35.2,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}