# ActivityPub <= 9.4.2 - Unauthenticated Stored Cross-Site Scripting via Custom Emoji Tag Name

- **ID:** WPSEC-2026-2666
- **Plugin:** ActivityPub (`activitypub`), https://wordpress.org/plugins/activitypub/
- **Affected versions:** all versions before 9.4.3
- **Fixed in:** 9.4.3 (Update to 9.4.3 or later.)
- **Severity:** High 7.2 (CVSS:3.1/AV:N/AC:L/PR:N/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-11-06)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/activitypub
- **Fix released:** 2026-11-05
- **Published:** 2026-11-06
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2666/

## Description

The ActivityPub plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'name' of custom Emoji tags in federated replies and remote posts in all versions up to, and including, 9.4.2. This is due to insufficient validation of the remote-controlled emoji name. After the remote HTML has been sanitized, every case-insensitive occurrence of the name in the content is replaced with activitypub/emoji block delimiters. When a name matches part of the sanitized markup, such as text inside an attribute value, these delimiters land inside HTML tags and attributes, and the block renderer later rebuilds the markup into unsafe HTML. This makes it possible for unauthenticated attackers operating a remote Fediverse account to inject arbitrary web scripts in pages that will execute whenever a user accesses an affected page, including the comment moderation screen.

## References

- https://wpsec.com/vuln/WPSEC-2026-2666/
- https://plugins.svn.wordpress.org/activitypub/tags/9.4.3/
- https://wordpress.org/plugins/activitypub/

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

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.
