Description
The BJ Lazy Load plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the `filter_images()` function in all versions up to, and including, 1.0.9. This is due to the use of regex-based HTML processing (`preg_replace`) that does not properly handle HTML attribute boundaries when replacing `src` attributes, allowing crafted content inside a `class` attribute value to be promoted to real DOM attributes after processing. 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.
Problem types
CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Product status
Any version
Timeline
| 2026-05-11: | Disclosed |
Credits
Muhammad Yudha - DJ
References
www.wordfence.com/...-4d70-4ca0-beeb-d2e839b14765?source=cve
plugins.trac.wordpress.org/...-load/trunk/inc/class-bjll.php
plugins.trac.wordpress.org/.../tags/1.0.9/inc/class-bjll.php
plugins.trac.wordpress.org/...-load/trunk/inc/class-bjll.php
plugins.trac.wordpress.org/.../tags/1.0.9/inc/class-bjll.php