---
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'
---

## Overview

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, 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.

## Affected

- `s2member_excellent_for_all_kinds_of_memberships_content_restriction_paywalls_member_access_subscriptions <= 261011`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
