CVE-2026-100196: LazyLoad Plugin <= 2.4.0 - Unauthenticated Stored Cross-Site Scripting via Comment Content
The LazyLoad Plugin – Lazy Load Images, Videos, and Iframes plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'commentcontent (rendered inline into the page HTML)' parameter in all versions up to, and including, 2.4.0 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. WordPress core's wpksesdata allow-list does not strip the crafted payload on save because it uses only permitted tags and attributes; the event handler is concealed inside a broken attribute region and is only promoted to a real DOM attribute by the plugin's render-time strreplace transformation. Additionally, a site administrator must approve the crafted comment before the payload is served to other visitors.
Affected Software
Event History
Frequently Asked Questions
What conditions are required for exploitation?
An unauthenticated attacker must submit a crafted comment, and a site administrator must approve that comment. The malicious script then executes when someone visits the page where the approved comment is displayed.
Are sites protected by WordPress core comment sanitization alone?
No. The crafted payload uses tags and attributes permitted by WordPress core's wp_kses_data allow-list, so it is not removed when the comment is saved. The plugin's render-time str_replace transformation causes the concealed event handler to become an active DOM attribute.
Who is exposed to the injected script?
Any visitor who accesses a page containing the approved malicious comment may execute the attacker-controlled script in their browser. The issue affects LazyLoad Plugin versions through 2.4.0.