Email Template Designer – WP HTML Mail Security & Risk Analysis

wordpress.org/plugins/wp-html-mail

All in one email template designer for WooCommerce, Ninja Forms, Elementor Forms, Gravity Forms, CF7, Support Plus, EDD, ...

20K active installs v3.4.9 PHP 7.2+ WP 5.4+ Updated Mar 4, 2025
elementoremailemail-designemail-templatewoocommerce-email
89
A · Safe
CVEs total4
Unpatched0
Last CVEAug 11, 2023
Safety Verdict

Is Email Template Designer – WP HTML Mail Safe to Use in 2026?

Generally Safe

Score 89/100

Email Template Designer – WP HTML Mail has a strong security track record. Known vulnerabilities have been patched promptly.

4 known CVEsLast CVE: Aug 11, 2023Updated 1yr ago
Risk Assessment

The wp-html-mail plugin, version 3.4.9, presents a mixed security posture. On one hand, the static analysis reveals a commendable absence of direct attack vectors through AJAX, REST API, shortcodes, or cron events that lack authentication. The plugin also demonstrates good practices by utilizing prepared statements for all SQL queries and implementing a significant percentage of output escaping. Nonce and capability checks are also present, suggesting a degree of security awareness in its development.

However, several concerns warrant attention. The presence of 3 unsanitized paths in the taint analysis indicates potential vulnerabilities where user-supplied data could be manipulated to impact file operations or other sensitive actions. While no critical or high severity taint flows were identified, this is still a significant area of risk. The plugin's history of 4 known CVEs, including high and medium severity issues like Missing Authorization, CSRF, and XSS, is a strong indicator of past security weaknesses. The fact that the last vulnerability was as recent as August 2023, and that there are currently no unpatched CVEs, suggests the developers are addressing issues, but the historical pattern is concerning.

In conclusion, while the plugin has improved its handling of direct entry points and database interactions, the potential for vulnerabilities stemming from unsanitized paths and its past exploit history require ongoing vigilance. The plugin demonstrates strengths in its core WordPress integration security but needs to ensure all data processing, particularly related to file operations, is robustly sanitized to prevent exploitation.

Key Concerns

  • Taint flows with unsanitized paths (3)
  • Historical high severity vulnerabilities (2)
  • Historical medium severity vulnerabilities (2)
  • Bundled library (TinyMCE)
  • Only 93% of output properly escaped
Vulnerabilities
4

Email Template Designer – WP HTML Mail Security Vulnerabilities

CVEs by Year

1 CVE in 2019
2019
1 CVE in 2021
2021
1 CVE in 2022
2022
1 CVE in 2023
2023
Patched Has unpatched

Severity Breakdown

High
2
Medium
2

4 total CVEs

CVE-2023-40202medium · 4.3Cross-Site Request Forgery (CSRF)

WP HTML Mail <= 3.4.0 - Cross-Site Request Forgery via 'send_test'

Aug 11, 2023 Patched in 3.4.1 (165d)
CVE-2022-0218high · 8.3Missing Authorization

WP HTML Mail <= 3.0.9 - Missing Authorization on Rest Route

Jan 19, 2022 Patched in 3.1 (734d)
CVE-2021-20779high · 8.8Cross-Site Request Forgery (CSRF)

WordPress Email Template Designer < 3.0.8 - Cross-Site Request Forgery

Jul 6, 2021 Patched in 3.0.8 (931d)
CVE-2019-25148medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

WP HTML Mail < 2.9.1 - HTML Injection

Oct 25, 2019 Patched in 2.9.1 (1551d)
Code Analysis
Analyzed Mar 16, 2026

Email Template Designer – WP HTML Mail Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
1 prepared
Unescaped Output
12
169 escaped
Nonce Checks
1
Capability Checks
13
File Operations
4
External Requests
1
Bundled Libraries
1

Bundled Libraries

TinyMCE

SQL Query Safety

100% prepared1 total queries

Output Escaping

93% escaped181 total outputs
Data Flows
3 unsanitized

Data Flow Analysis

4 flows3 with unsanitized paths
<class-haet-mail> (includes\class-haet-mail.php:0)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Email Template Designer – WP HTML Mail Attack Surface

Entry Points0
Unprotected0
WordPress Hooks 36
filterblock_editor_settings_allincludes\class-content-editor.php:6
filterblock_editor_settings_allincludes\class-content-editor.php:7
filterjetpack_blocks_variationincludes\class-content-editor.php:110
actionwp_print_footer_scriptsincludes\class-content-editor.php:122
filterhaet_mail_content_typesincludes\class-contenttype.php:35
actionadmin_enqueue_scriptsincludes\class-contenttype.php:36
actionhaet_mail_content_templateincludes\class-contenttype.php:37
actionhaet_mail_content_settingsincludes\class-contenttype.php:38
actionplugins_loadedincludes\class-haet-mail.php:27
actionadmin_noticesincludes\class-haet-mail.php:29
filtertiny_mce_before_initincludes\class-haet-mail.php:263
filterwp_mail_fromincludes\class-haet-mail.php:616
filterwp_mail_from_nameincludes\class-haet-mail.php:617
filterwp_mail_content_typeincludes\class-haet-mail.php:621
filterwp_mail_charsetincludes\class-haet-mail.php:622
filtergform_pre_send_emailincludes\class-haet-sender-plugin-gravityforms.php:53
filterewd_uwpm_content_post_substitutionsincludes\class-haet-sender-plugin-ultimate-wp-mail.php:43
filterhaet_mail_css_desktopincludes\class-haet-sender-plugin-ultimate-wp-mail.php:59
actionwoocommerce_email_headerincludes\class-haet-sender-plugin-woocommerce.php:86
actionwoocommerce_email_footerincludes\class-haet-sender-plugin-woocommerce.php:87
actioninitincludes\class-mailbuilder.php:37
actionadmin_enqueue_scriptsincludes\class-mailbuilder.php:38
actionsave_postincludes\class-mailbuilder.php:39
filtertiny_mce_before_initincludes\class-mailbuilder.php:40
filtermce_external_pluginsincludes\class-mailbuilder.php:41
filterhaet_mail_modify_styled_mailincludes\class-mailbuilder.php:43
filterpll_get_post_typesincludes\class-mailbuilder.php:46
actionadmin_enqueue_scriptsincludes\class-template-designer.php:16
actionrest_api_initincludes\class-template-designer.php:17
filterhaet_mail_enqueue_js_dataincludes\class-template-designer.php:19
actioninitwp-html-mail.php:30
actionadmin_noticeswp-html-mail.php:38
filtermandrill_payloadwp-html-mail.php:41
filterwp_mailwp-html-mail.php:43
actionadmin_menuwp-html-mail.php:45
actionadmin_enqueue_scriptswp-html-mail.php:46
Maintenance & Trust

Email Template Designer – WP HTML Mail Maintenance & Trust

Maintenance Signals

WordPress version tested6.7.5
Last updatedMar 4, 2025
PHP min version7.2
Downloads701K

Community Trust

Rating98/100
Number of ratings86
Active installs20K
Developer Profile

Email Template Designer – WP HTML Mail Developer Profile

Hannes Etzelstorfer

5 plugins · 20K total installs

69
trust score
Avg Security Score
86/100
Avg Patch Time
845 days
View full developer profile
Detection Fingerprints

How We Detect Email Template Designer – WP HTML Mail

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/wp-html-mail/css/wp-html-mail.css/wp-content/plugins/wp-html-mail/css/backend.css/wp-content/plugins/wp-html-mail/css/wp-html-mail-gutenberg.css/wp-content/plugins/wp-html-mail/js/wp-html-mail-backend.js/wp-content/plugins/wp-html-mail/js/wp-html-mail-gutenberg.js/wp-content/plugins/wp-html-mail/js/wp-html-mail-frontend.js
Script Paths
/wp-content/plugins/wp-html-mail/js/wp-html-mail-backend.js/wp-content/plugins/wp-html-mail/js/wp-html-mail-gutenberg.js/wp-content/plugins/wp-html-mail/js/wp-html-mail-frontend.js
Version Parameters
wp-html-mail/css/wp-html-mail.css?ver=wp-html-mail/css/backend.css?ver=wp-html-mail/css/wp-html-mail-gutenberg.css?ver=wp-html-mail/js/wp-html-mail-backend.js?ver=wp-html-mail/js/wp-html-mail-gutenberg.js?ver=wp-html-mail/js/wp-html-mail-frontend.js?ver=

HTML / DOM Fingerprints

CSS Classes
wp-html-mail-backend
Data Attributes
data-wp-html-mail-editor
JS Globals
haetMailBackendhaetMailGutenberg
FAQ

Frequently Asked Questions about Email Template Designer – WP HTML Mail