{"id":"CVE-2026-15404","aliases":["EUVD-2026-47927","GHSA-8w85-6hx8-qc3f"],"status":"published","title":"Bulk Page Generator \u003c= 2.5.7 - Authenticated (Contributor+) Stored Cross-Site Scripting via Post Title","description":"The Lpagery plugin for WordPress is vulnerable to Stored Cross-Site Scripting via post titles in versions up to, and including, 2.5.7. This is due to insufficient input sanitization and output escaping in the lpagery_add_filter_text_template_post() function, which is hooked to admin_footer and echoes the raw post_title of the post referenced by the ?lpagery_template query parameter directly inside a JavaScript single-quoted string literal, without esc_js(), esc_html(), or any other encoding. 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 higher-privileged user (such as an administrator) accesses an admin page with the ?lpagery_template=\u003cpost_id\u003e parameter pointing at the attacker's post.","severity":{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00331,"percentile":0.26535,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-79"],"published":"2026-07-23T08:34:38Z","modified":"2026-07-23T15:14:51Z","products":[{"vendor":"niklaslindemann","product":"bulk page generator – lpagery"}],"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/6720e68e-16fc-48c2-ad56-1f44a3e78bb2?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/lpagery/tags/2.5.7/lpagery.php#L513"},{"url":"https://plugins.trac.wordpress.org/browser/lpagery/tags/2.5.7/lpagery.php#L502"},{"url":"https://plugins.trac.wordpress.org/browser/lpagery/tags/2.5.7/lpagery.php#L504"},{"url":"https://plugins.trac.wordpress.org/changeset?reponame=\u0026old=3611156%40lpagery\u0026new=3611156%40lpagery"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-15404"},{"url":"https://github.com/advisories/GHSA-8w85-6hx8-qc3f"}],"sources":{"cve":[{"id":"CVE-2026-15404","title":"Bulk Page Generator \u003c= 2.5.7 - Authenticated (Contributor+) Stored Cross-Site Scripting via Post Title","description":"The Lpagery plugin for WordPress is vulnerable to Stored Cross-Site Scripting via post titles in versions up to, and including, 2.5.7. This is due to insufficient input sanitization and output escaping in the lpagery_add_filter_text_template_post() function, which is hooked to admin_footer and echoes the raw post_title of the post referenced by the ?lpagery_template query parameter directly inside a JavaScript single-quoted string literal, without esc_js(), esc_html(), or any other encoding. 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 higher-privileged user (such as an administrator) accesses an admin page with the ?lpagery_template=\u003cpost_id\u003e parameter pointing at the attacker's post.","status":"published","published":"2026-07-23T08:34:38.958Z","modified":"2026-07-23T13:55:19.14Z","cvss":[{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T13:47:51.033687Z"}],"euvd":[{"id":"EUVD-2026-47927","description":"The Lpagery plugin for WordPress is vulnerable to Stored Cross-Site Scripting via post titles in versions up to, and including, 2.5.7. This is due to insufficient input sanitization and output escaping in the lpagery_add_filter_text_template_post() function, which is hooked to admin_footer and echoes the raw post_title of the post referenced by the ?lpagery_template query parameter directly inside a JavaScript single-quoted string literal, without esc_js(), esc_html(), or any other encoding. 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 higher-privileged user (such as an administrator) accesses an admin page with the ?lpagery_template=\u003cpost_id\u003e parameter pointing at the attacker's post.","status":"published","published":"2026-07-23T08:34:38Z","modified":"2026-07-23T13:55:19Z","cvss":[{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T18:19:44.021778Z"}],"ghsa":[{"id":"GHSA-8w85-6hx8-qc3f","title":"The Lpagery plugin for WordPress is vulnerable to Stored Cross-Site Scripting via post titles in...","description":"The Lpagery plugin for WordPress is vulnerable to Stored Cross-Site Scripting via post titles in versions up to, and including, 2.5.7. This is due to insufficient input sanitization and output escaping in the lpagery_add_filter_text_template_post() function, which is hooked to admin_footer and echoes the raw post_title of the post referenced by the ?lpagery_template query parameter directly inside a JavaScript single-quoted string literal, without esc_js(), esc_html(), or any other encoding. 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 higher-privileged user (such as an administrator) accesses an admin page with the ?lpagery_template=\u003cpost_id\u003e parameter pointing at the attacker's post.","status":"published","published":"2026-07-23T12:32:22Z","modified":"2026-07-23T12:32:54Z","cvss":[{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:09:41.900753Z"}],"nvd":[{"id":"CVE-2026-15404","description":"The Lpagery plugin for WordPress is vulnerable to Stored Cross-Site Scripting via post titles in versions up to, and including, 2.5.7. This is due to insufficient input sanitization and output escaping in the lpagery_add_filter_text_template_post() function, which is hooked to admin_footer and echoes the raw post_title of the post referenced by the ?lpagery_template query parameter directly inside a JavaScript single-quoted string literal, without esc_js(), esc_html(), or any other encoding. 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 higher-privileged user (such as an administrator) accesses an admin page with the ?lpagery_template=\u003cpost_id\u003e parameter pointing at the attacker's post.","status":"published","published":"2026-07-23T10:16:50.56Z","modified":"2026-07-23T15:14:51.013Z","cvss":[{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:12:32.473901Z"}]}}
