Description
The Themify Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'variations' repeater field of Custom Font (tb_cf) posts in versions up to, and including, 7.8.4. This is due to insufficient input sanitization and output escaping on the variations post meta: Themify_Metabox::_save_meta() only passes the value through wp_kses_data() when the field type is 'textbox' or 'textarea', so the 'repeater' field writes attacker-controlled sub-fields (style, woff/woff2/ttf/svg/eot URLs) to update_post_meta() verbatim, and Themify_Custom_Fonts::render_columns() later echoes those values unescaped inside a <style> block on the Custom Fonts admin listing. 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 (specifically, the Custom Fonts admin listing).
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
themifyme Themify Builder
Default version status: unaffected
0 to ≤ 7.8.4affected
References
- https://www.wordfence.com/threat-intel/vulnerabilities/id/cf80f304-f79d-4863-b57a-d273daa5fe7f?source=cve ↗
- https://plugins.trac.wordpress.org/browser/themify-builder/tags/7.8.4/themify/class-themify-custom-fonts.php#L287 ↗
- https://plugins.trac.wordpress.org/browser/themify-builder/tags/7.8.4/themify/themify-metabox/includes/themify-metabox-core.php#L208 ↗
- https://plugins.trac.wordpress.org/browser/themify-builder/tags/7.8.4/themify/themify-metabox/includes/themify-metabox-core.php#L230 ↗
- https://plugins.trac.wordpress.org/changeset?reponame=&old=3774070%40themify-builder&new=3774070%40themify-builder ↗