# All-in-One Video Gallery <= 5.0.0 - Authenticated (Subscriber+) Stored DOM-Based Cross-Site Scripting via 'track' Post Meta 'label' Field

- **ID:** WPSEC-2026-2446
- **Plugin:** All-in-One Video Gallery – Video Player & Galleries for YouTube, Vimeo & Self-Hosted Videos (`all-in-one-video-gallery`), https://wordpress.org/plugins/all-in-one-video-gallery/
- **Affected versions:** all versions before 5.1.0
- **Fixed in:** 5.1.0 (Update to 5.1.0 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-11-04)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/all-in-one-video-gallery
- **Fix released:** 2026-11-03
- **Published:** 2026-11-04
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2446/

## Description

The All-in-One Video Gallery plugin for WordPress is vulnerable to Stored DOM-Based Cross-Site Scripting via the 'label' field of the 'track' and 'chapter' video post meta in all versions up to, and including, 5.0.0 due to insufficient sanitization on save and insufficient escaping on output. The labels are only escaped with esc_attr(), which the browser decodes before the Plyr.js player inserts them into the page as HTML. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts that execute whenever a user views the affected video player.

## References

- https://wpsec.com/vuln/WPSEC-2026-2446/
- https://plugins.svn.wordpress.org/all-in-one-video-gallery/tags/5.1.0/
- https://wordpress.org/plugins/all-in-one-video-gallery/

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

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.
