# We’re Open! <= 2.8 - Unauthenticated Arbitrary Shortcode Execution via Live Update

- **ID:** WPSEC-2026-3101
- **Plugin:** We’re Open! (`opening-hours`), https://wordpress.org/plugins/opening-hours/
- **Affected versions:** all versions before 2.9
- **Fixed in:** 2.9 (Update to 2.9 or later.)
- **Severity:** High 7.3 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L)
- **Weakness:** CWE-94
- **Usage among sites WPSec scans:** plugin Low, affected versions Low (as of 2026-11-13)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/opening-hours
- **Fix released:** 2026-11-12
- **Published:** 2026-11-13
- **URL:** https://wpsec.com/vuln/WPSEC-2026-3101/

## Description

The We’re Open! plugin for WordPress is vulnerable to arbitrary shortcode execution via the live update AJAX action (we_are_open_wp_ajax) in all versions up to, and including, 2.8. This is due to the handler, which is registered for unauthenticated users, accepting a user-supplied 'content' value and rendering it with shortcode processing enabled, because the 'shortcodes' parameter is removed again before the content is rendered. This makes it possible for unauthenticated attackers to execute arbitrary shortcodes registered on the site and receive their output.

## References

- https://wpsec.com/vuln/WPSEC-2026-3101/
- https://plugins.svn.wordpress.org/opening-hours/tags/2.9/
- https://wordpress.org/plugins/opening-hours/

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

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.
