{"id":"CVE-2026-16778","aliases":["EUVD-2026-84298","GHSA-hv57-w5f4-r2xr"],"status":"published","title":"Live Composer \u003c= 2.1.21 - Authenticated (Contributor+) Stored Cross-Site Scripting via 'dslc_module_downloads_output' Shortcode Content","description":"The Live Composer – Free WordPress Website Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'dslc_module_downloads_output' Shortcode Content in all versions up to, and including, 2.1.21 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 save-time wp_kses_post check is bypassed because the payload is stored as a serialized string containing no HTML tags for kses to tokenize, and the shortcode callback re-emits attacker-controlled values — including view_all_link (href attribute), main_heading_title (h2 body), button_text (anchor body), and button_inline_svg (anchor body) — without any escaping at render 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-10","score":0.00383,"percentile":0.3273,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-79"],"published":"2026-09-22T07:41:09Z","modified":"2026-09-22T19:04:55Z","products":[{"vendor":"livecomposer","product":"live composer – free wordpress website builder"}],"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/1d072660-515c-4fd9-903b-815447786e03?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/live-composer-page-builder/tags/2.1.18/modules/downloads/module.php#L5508"},{"url":"https://plugins.trac.wordpress.org/browser/live-composer-page-builder/tags/2.1.18/modules/downloads/module.php#L5225"},{"url":"https://plugins.trac.wordpress.org/browser/live-composer-page-builder/tags/2.1.18/modules/downloads/module.php#L5219"},{"url":"https://plugins.trac.wordpress.org/browser/live-composer-page-builder/tags/2.1.18/modules/downloads/module.php#L5502"},{"url":"https://plugins.trac.wordpress.org/browser/live-composer-page-builder/tags/2.1.18/modules/downloads/module.php#L4978"},{"url":"https://plugins.trac.wordpress.org/browser/live-composer-page-builder/tags/2.1.18/modules/downloads/module.php#L5685"},{"url":"https://plugins.trac.wordpress.org/changeset?reponame=\u0026old=3705127%40live-composer-page-builder\u0026new=3705127%40live-composer-page-builder"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-16778"},{"url":"https://github.com/advisories/GHSA-hv57-w5f4-r2xr"}],"sources":{"cve":[{"id":"CVE-2026-16778","title":"Live Composer \u003c= 2.1.21 - Authenticated (Contributor+) Stored Cross-Site Scripting via 'dslc_module_downloads_output' Shortcode Content","description":"The Live Composer – Free WordPress Website Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'dslc_module_downloads_output' Shortcode Content in all versions up to, and including, 2.1.21 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 save-time wp_kses_post check is bypassed because the payload is stored as a serialized string containing no HTML tags for kses to tokenize, and the shortcode callback re-emits attacker-controlled values — including view_all_link (href attribute), main_heading_title (h2 body), button_text (anchor body), and button_inline_svg (anchor body) — without any escaping at render time.","status":"published","published":"2026-09-22T07:41:09.668Z","modified":"2026-09-22T10:25:33.118Z","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:11.24076Z"}],"euvd":[{"id":"EUVD-2026-84298","description":"The Live Composer – Free WordPress Website Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'dslc_module_downloads_output' Shortcode Content in all versions up to, and including, 2.1.21 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 save-time wp_kses_post check is bypassed because the payload is stored as a serialized string containing no HTML tags for kses to tokenize, and the shortcode callback re-emits attacker-controlled values — including view_all_link (href attribute), main_heading_title (h2 body), button_text (anchor body), and button_inline_svg (anchor body) — without any escaping at render time.","status":"published","published":"2026-09-22T07:41:09Z","modified":"2026-09-22T10:25:33Z","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-02T17:28:03.363938Z"}],"ghsa":[{"id":"GHSA-hv57-w5f4-r2xr","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_downloads_output' Shortcode Content in all versions up to, and including, 2.1.21 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 save-time wp_kses_post check is bypassed because the payload is stored as a serialized string containing no HTML tags for kses to tokenize, and the shortcode callback re-emits attacker-controlled values — including view_all_link (href attribute), main_heading_title (h2 body), button_text (anchor body), and button_inline_svg (anchor body) — without any escaping at render time.","status":"published","published":"2026-09-22T09:31:12Z","modified":"2026-09-22T09:31:17Z","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:12:16.582397Z"}],"nvd":[{"id":"CVE-2026-16778","description":"The Live Composer – Free WordPress Website Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'dslc_module_downloads_output' Shortcode Content in all versions up to, and including, 2.1.21 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 save-time wp_kses_post check is bypassed because the payload is stored as a serialized string containing no HTML tags for kses to tokenize, and the shortcode callback re-emits attacker-controlled values — including view_all_link (href attribute), main_heading_title (h2 body), button_text (anchor body), and button_inline_svg (anchor body) — without any escaping at render time.","status":"published","published":"2026-09-22T08:16:38.8Z","modified":"2026-09-22T19:04:55.677Z","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:50.368368Z"}]}}
