Textmetrics Security & Risk Analysis

wordpress.org/plugins/webtexttool

Textmetrics is the easiest way to create SEO proof content to rank higher and get more traffic. Realtime optimization, keyword research and more.

400 active installs v3.6.6 PHP + WP 3.5+ Updated Mar 23, 2026
content-analysiskeyword-analysisreadabilityseo-optimizationwriting-assistance
95
A · Safe
CVEs total4
Unpatched0
Last CVEFeb 8, 2026
Safety Verdict

Is Textmetrics Safe to Use in 2026?

Generally Safe

Score 95/100

Textmetrics has a strong security track record. Known vulnerabilities have been patched promptly. It's a solid choice for most WordPress installations.

4 known CVEsLast CVE: Feb 8, 2026Updated 1mo ago
Risk Assessment

The webtexttool plugin v3.6.5 presents a mixed security posture. While the use of prepared statements for all SQL queries and the absence of dangerous functions are positive signs, significant concerns arise from its attack surface and historical vulnerabilities. The plugin exposes 11 AJAX handlers, all of which lack authentication checks, creating a substantial entry point for unauthenticated attackers. This is further exacerbated by the fact that there are 14 nonce checks but only 8 capability checks, indicating a potential imbalance in how different types of access are being validated.

The vulnerability history reveals a pattern of medium severity issues including Code Injection, Cross-site Scripting, and Missing Authorization. The presence of three known CVEs, with one currently unpatched, is a significant concern. The most recent vulnerability was in 2026, which is an unusual date for a historical vulnerability; assuming this is a typo and it refers to a past event, it still highlights a recurring security debt. The absence of critical or high severity taint flows suggests that currently, there are no obvious severe vulnerabilities in the analyzed code paths, but this does not mitigate the risks posed by the exposed AJAX endpoints and past unpatched issues.

In conclusion, while the plugin demonstrates good practices in database interaction and avoids certain dangerous functions, the unauthenticated AJAX endpoints and a history of medium-severity vulnerabilities, including an unpatched one, make it a notable security risk. The focus on capability checks is positive but insufficient if authorization is not robustly implemented on all entry points, especially the 11 unprotected AJAX handlers.

Key Concerns

  • Unprotected AJAX handlers
  • Unpatched CVE
  • Missing authorization on AJAX handlers
  • Medium severity vulnerability history (3 CVEs)
  • Lower percentage of properly escaped output
Vulnerabilities
4 published

Textmetrics Security Vulnerabilities

CVEs by Year

2 CVEs in 2025
2025
2 CVEs in 2026
2026
Patched Has unpatched

Severity Breakdown

Medium
4

4 total CVEs

CVE-2026-32331medium · 4.3Missing Authorization

Textmetrics <= 3.6.4 - Missing Authorization

Feb 8, 2026 Patched in 3.6.5 (67d)
CVE-2026-24564medium · 5.4Improper Control of Generation of Code ('Code Injection')

Textmetrics <= 3.6.5 - Authenticated (Subscriber+) Arbitrary Shortcode Execution

Jan 21, 2026 Patched in 3.6.6 (85d)
CVE-2025-46229medium · 4.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Textmetrics <= 3.6.2 - Authenticated (Administrator+) Stored Cross-Site Scripting

Apr 22, 2025 Patched in 3.6.3 (9d)
CVE-2025-30824medium · 4.3Missing Authorization

Textmetrics <= 3.6.1 - Missing Authorization

Mar 27, 2025 Patched in 3.6.2 (7d)
Code Analysis
Analyzed Mar 16, 2026

Textmetrics Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
8 prepared
Unescaped Output
90
165 escaped
Nonce Checks
14
Capability Checks
8
File Operations
0
External Requests
0
Bundled Libraries
0

SQL Query Safety

100% prepared8 total queries

Output Escaping

65% escaped255 total outputs
Data Flows · Security
All sanitized

Data Flow Analysis

6 flows
webtexttool_ajax (admin\class-webtexttool-admin.php:504)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
11 unprotected

Textmetrics Attack Surface

Entry Points11
Unprotected11

AJAX Handlers 11

authwp_ajax_webtexttoolincludes\class-webtexttool.php:130
authwp_ajax_webtexttool_doctypesincludes\class-webtexttool.php:131
authwp_ajax_webtexttool_dismiss_wtt_noticeincludes\class-webtexttool.php:154
authwp_ajax_webtexttool_save_page_dataincludes\class-webtexttool.php:187
authwp_ajax_webtexttool_convert_divi_shortcodesincludes\class-webtexttool.php:188
authwp_ajax_webtexttool_search_postsincludes\class-webtexttool.php:189
authwp_ajax_webtexttool_convert_shortcodesincludes\class-webtexttool.php:190
authwp_ajax_webtexttool_do_blocksincludes\class-webtexttool.php:191
authwp_ajax_webtexttool_tve_editor_contentincludes\class-webtexttool.php:192
authwp_ajax_webtexttool_content_quality_suggestionsincludes\class-webtexttool.php:193
authwp_ajax_webtexttool_content_quality_settingsincludes\class-webtexttool.php:194
WordPress Hooks 31
filterthe_contentcore\class-webtexttool-core.php:917
actionafter_setup_themeincludes\class-webtexttool.php:58
actionplugins_loadedincludes\class-webtexttool.php:112
actionadmin_menuincludes\class-webtexttool.php:128
actionadmin_enqueue_scriptsincludes\class-webtexttool.php:133
actionadmin_enqueue_scriptsincludes\class-webtexttool.php:134
actionadmin_initincludes\class-webtexttool.php:136
actionadmin_enqueue_scriptsincludes\class-webtexttool.php:138
actioninitincludes\class-webtexttool.php:140
actioninitincludes\class-webtexttool.php:141
actioninitincludes\class-webtexttool.php:144
actionadmin_initincludes\class-webtexttool.php:147
actionadmin_initincludes\class-webtexttool.php:148
actionadmin_noticesincludes\class-webtexttool.php:151
actionadmin_enqueue_scriptsincludes\class-webtexttool.php:168
actionadmin_enqueue_scriptsincludes\class-webtexttool.php:169
actionadd_meta_boxesincludes\class-webtexttool.php:172
actionadd_meta_boxesincludes\class-webtexttool.php:173
actionedit_form_after_titleincludes\class-webtexttool.php:176
actionadmin_initincludes\class-webtexttool.php:179
actionsave_postincludes\class-webtexttool.php:182
actionedit_attachmentincludes\class-webtexttool.php:183
actionadd_attachmentincludes\class-webtexttool.php:184
actionrwmb_enqueue_scriptsincludes\class-webtexttool.php:195
actionwp_headincludes\class-webtexttool.php:210
filterpre_get_document_titleincludes\class-webtexttool.php:214
filterwp_titleincludes\class-webtexttool.php:215
actionsave_postincludes\class-webtexttool.php:219
actionsave_postincludes\class-webtexttool.php:221
actiontm_save_structured_dataincludes\class-webtexttool.php:222
actionplugins_loadedincludes\class-webtexttool.php:235
Maintenance & Trust

Textmetrics Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedMar 23, 2026
PHP min version
Downloads77K

Community Trust

Rating86/100
Number of ratings7
Active installs400
Developer Profile

Textmetrics Developer Profile

Israpil

1 plugin · 400 total installs

85
trust score
Avg Security Score
95/100
Avg Patch Time
42 days
View full developer profile
Detection Fingerprints

How We Detect Textmetrics

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/webtexttool/css/style.css/wp-content/plugins/webtexttool/js/wtt-admin-script.js/wp-content/plugins/webtexttool/js/wtt-public-script.js/wp-content/plugins/webtexttool/css/wtt-admin.css
Script Paths
/wp-content/plugins/webtexttool/js/wtt-admin-script.js/wp-content/plugins/webtexttool/js/wtt-public-script.js
Version Parameters
webtexttool/css/style.css?ver=webtexttool/js/wtt-admin-script.js?ver=webtexttool/js/wtt-public-script.js?ver=webtexttool/css/wtt-admin.css?ver=

HTML / DOM Fingerprints

CSS Classes
wtt-admin-pagewtt-settings-pagewtt-social-pagewtt-tools-page
HTML Comments
<!-- If this file is called directly, abort. --><!-- The code that runs during plugin activation. --><!-- The code that runs during plugin deactivation. --><!-- The core plugin class that is used to define internationalization, admin-specific hooks, and core specific hooks. -->+6 more
Data Attributes
wtt_manage_options_capabilitydata-wtt-plugin-namedata-wtt-plugin-version
JS Globals
Webtexttool
FAQ

Frequently Asked Questions about Textmetrics