# Schedule Post Changes With PublishPress Future: Unpublish, Delete, Change Status, Trash, Change Categories <= 4.10.5 - Authenticated (Contributor+) Stored Cross-Site Scripting via Shortcode Attributes

- **ID:** WPSEC-2026-0607
- **Plugin:** Schedule Post Changes With PublishPress Future: Unpublish, Delete, Change Status, Trash, Change Categories (`post-expirator`), https://wordpress.org/plugins/post-expirator/
- **Affected versions:** all versions before 4.10.6
- **Fixed in:** 4.10.6 (Update to 4.10.6 or later.)
- **Severity:** Medium 6.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N)
- **Weakness:** CWE-79
- **Usage among sites WPSec scans:** plugin Low, affected versions Low (as of 2026-10-07)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/post-expirator
- **Fix released:** 2026-10-06
- **Published:** 2026-10-07
- **URL:** https://wpsec.com/vuln/WPSEC-2026-0607/

## Description

The Schedule Post Changes With PublishPress Future plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'futureaction' and 'postexpirator' shortcodes in all versions up to, and including, 4.10.5. This is due to insufficient restriction of the 'wrapper' attribute, which accepts any element name, and to missing output escaping of the date rendered from the 'dateformat' and 'timeformat' attributes when no wrapper is set. 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.

## References

- https://wpsec.com/vuln/WPSEC-2026-0607/
- https://plugins.svn.wordpress.org/post-expirator/tags/4.10.6/
- https://wordpress.org/plugins/post-expirator/

Source: WPSec, https://wpsec.com/vuln/WPSEC-2026-0607/

License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Free to use, share and adapt, also commercially, if you credit WPSec and link to this advisory.
