{"id":"CVE-2026-16786","aliases":["EUVD-2026-68998","GHSA-vq42-9gx3-gj3v"],"status":"published","title":"Live Composer \u003c= 2.1.19 - Authenticated (Contributor+) Stored Cross-Site Scripting via dslc_module_testimonials_output Shortcode","description":"The Live Composer – Free WordPress Website Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via dslc_module_testimonials_output Shortcode in all versions up to, and including, 2.1.19 due to insufficient input sanitization and output escaping. 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. The injected payload survives save-time wp_kses_post filtering because KSES treats shortcode delimiters as opaque, and the unescaped fields — including main_heading_title, view_all_link, main_heading_link_title, and main_filter_title_all — are only rendered when do_shortcode() executes at page-view time.","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.00349,"percentile":0.28743,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-79"],"published":"2026-09-01T09:28:20Z","modified":"2026-09-01T20:47:54Z","products":[{"vendor":"livecomposer","product":"live composer – free wordpress website builder"}],"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/852b1766-8674-44a0-843c-381cd4155a2b?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/live-composer-page-builder/tags/2.1.18/modules/testimonials/module.php#L5251"},{"url":"https://plugins.trac.wordpress.org/browser/live-composer-page-builder/tags/2.1.18/modules/testimonials/module.php#L5257"},{"url":"https://plugins.trac.wordpress.org/browser/live-composer-page-builder/tags/2.1.18/modules/testimonials/module.php#L5291"},{"url":"https://plugins.trac.wordpress.org/browser/live-composer-page-builder/tags/2.1.18/modules/testimonials/module.php#L5024"},{"url":"https://plugins.trac.wordpress.org/changeset?reponame=\u0026old=3662813%40live-composer-page-builder\u0026new=3662813%40live-composer-page-builder"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-16786"},{"url":"https://github.com/advisories/GHSA-vq42-9gx3-gj3v"}],"sources":{"cve":[{"id":"CVE-2026-16786","title":"Live Composer \u003c= 2.1.19 - Authenticated (Contributor+) Stored Cross-Site Scripting via dslc_module_testimonials_output Shortcode","description":"The Live Composer – Free WordPress Website Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via dslc_module_testimonials_output Shortcode in all versions up to, and including, 2.1.19 due to insufficient input sanitization and output escaping. 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. The injected payload survives save-time wp_kses_post filtering because KSES treats shortcode delimiters as opaque, and the unescaped fields — including main_heading_title, view_all_link, main_heading_link_title, and main_filter_title_all — are only rendered when do_shortcode() executes at page-view time.","status":"published","published":"2026-09-01T09:28:20.787Z","modified":"2026-09-01T15:21:29.034Z","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-02T14:20:10.870108Z"}],"euvd":[{"id":"EUVD-2026-68998","description":"The Live Composer – Free WordPress Website Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via dslc_module_testimonials_output Shortcode in all versions up to, and including, 2.1.19 due to insufficient input sanitization and output escaping. 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. The injected payload survives save-time wp_kses_post filtering because KSES treats shortcode delimiters as opaque, and the unescaped fields — including main_heading_title, view_all_link, main_heading_link_title, and main_filter_title_all — are only rendered when do_shortcode() executes at page-view time.","status":"published","published":"2026-09-01T09:28:20Z","modified":"2026-09-01T15:21:29Z","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:01:17.79788Z"}],"ghsa":[{"id":"GHSA-vq42-9gx3-gj3v","title":"The Live Composer – Free WordPress Website Builder plugin for WordPress is vulnerable to Stored...","description":"The Live Composer – Free WordPress Website Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via dslc_module_testimonials_output Shortcode in all versions up to, and including, 2.1.19 due to insufficient input sanitization and output escaping. 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. The injected payload survives save-time wp_kses_post filtering because KSES treats shortcode delimiters as opaque, and the unescaped fields — including main_heading_title, view_all_link, main_heading_link_title, and main_filter_title_all — are only rendered when do_shortcode() executes at page-view time.","status":"published","published":"2026-09-01T12:31:47Z","modified":"2026-09-01T12:31:50Z","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:11:12.60039Z"}],"nvd":[{"id":"CVE-2026-16786","description":"The Live Composer – Free WordPress Website Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via dslc_module_testimonials_output Shortcode in all versions up to, and including, 2.1.19 due to insufficient input sanitization and output escaping. 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. The injected payload survives save-time wp_kses_post filtering because KSES treats shortcode delimiters as opaque, and the unescaped fields — including main_heading_title, view_all_link, main_heading_link_title, and main_filter_title_all — are only rendered when do_shortcode() executes at page-view time.","status":"published","published":"2026-09-01T10:17:11.603Z","modified":"2026-09-01T20:47:54.13Z","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:43.04945Z"}]}}
