Description
The a3 Lazy Load plugin for WordPress is vulnerable to Stored Cross-Site Scripting in all versions up to, and including, 2.7.6 This is due to a regex bug in the _filter_videos() method that breaks HTML attribute quoting when processing crafted <video> elements, combined with unescaped output in the admin/views/form-data.php template. An authenticated attacker with Contributor-level access can insert a crafted <video> tag whose src attribute contains an embedded class=" substring that tricks the plugin's class-replacement regex into consuming an attribute-value closing quote. This shifts the HTML5 parser's quote boundary, promoting attacker-controlled text from inside a quoted attribute value into standalone event-handler attributes (autofocus, onfocus). The injected script executes in the browser of any user (including administrators) who views the post.
Problem types
CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Product status
Any version
Timeline
| 2026-05-27: | Disclosed |
Credits
Youcef Hamdani
References
www.wordfence.com/...-93cc-4951-900e-d13d08840f03?source=cve
plugins.trac.wordpress.org/...classes/class-a3-lazy-load.php
plugins.trac.wordpress.org/...classes/class-a3-lazy-load.php
plugins.trac.wordpress.org/...classes/class-a3-lazy-load.php
plugins.trac.wordpress.org/...classes/class-a3-lazy-load.php
plugins.trac.wordpress.org/...classes/class-a3-lazy-load.php
plugins.trac.wordpress.org/...runk/admin/views/form-data.php
plugins.trac.wordpress.org/...ath=%2Fa3-lazy-load/tags/2.7.7