Formality Security & Risk Analysis

wordpress.org/plugins/formality

Forms made simple (and cute). Designless, multistep, conversational, secure, all-in-one WordPress forms plugin.

200 active installs v1.5.11 PHP 7.4+ WP 6.7+ Updated Jul 1, 2025
conversationaldesign-formformgutenbergmultistep
89
A · Safe
CVEs total3
Unpatched0
Last CVEJul 16, 2025
Safety Verdict

Is Formality Safe to Use in 2026?

Generally Safe

Score 89/100

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

3 known CVEsLast CVE: Jul 16, 2025Updated 10mo ago
Risk Assessment

The Formality plugin v1.5.11 presents a mixed security profile. While the static analysis indicates a robust effort to secure entry points, with all AJAX handlers, REST API routes, and shortcodes appearing to have authentication or permission checks, there are underlying concerns. A significant portion of output (57%) is not properly escaped, which, while not flagged as a critical taint flow in the static analysis, represents a potential Cross-Site Scripting (XSS) risk if user-supplied data is ever rendered without sanitization. The plugin also performs a notable number of file operations (19), and while no path traversal or file inclusion issues were directly found in the static scan, the historical vulnerability data strongly suggests these are past weaknesses that require continued vigilance. The presence of 3 known CVEs, including 2 critical ones, specifically related to Path Traversal, XSS, and PHP Remote File Inclusion, despite none being currently unpatched, indicates a history of serious security flaws. This history, coupled with the high rate of unescaped output, suggests that while recent versions may have addressed specific vulnerabilities, a general lack of rigorous input sanitization and output escaping practices may persist, making it a target for attackers seeking to exploit subtle vulnerabilities.

Key Concerns

  • High rate of unescaped output
  • History of critical vulnerabilities (Path Traversal, RFI, XSS)
Vulnerabilities
3 published

Formality Security Vulnerabilities

CVEs by Year

3 CVEs in 2025
2025
Patched Has unpatched

Severity Breakdown

Critical
2
Medium
1

3 total CVEs

CVE-2025-48157critical · 9.8Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Formality <= 1.5.9 - Unauthenticated Local File Inclusion

Jul 16, 2025 Patched in 1.5.10 (6d)
CVE-2025-3858medium · 6.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Formality <= 1.5.8 - Authenticated (Contributor+) Stored Cross-Site Scripting via align Parameter

May 1, 2025 Patched in 1.5.9 (1d)
CVE-2025-24690critical · 9.8Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion')

Formality <= 1.5.7 - Unauthenticated Local File Inclusion

Mar 17, 2025 Patched in 1.5.8 (9d)
Code Analysis
Analyzed Mar 16, 2026

Formality Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
2 prepared
Unescaped Output
49
37 escaped
Nonce Checks
8
Capability Checks
9
File Operations
19
External Requests
0
Bundled Libraries
0

SQL Query Safety

100% prepared2 total queries

Output Escaping

43% escaped86 total outputs
Data Flows · Security
All sanitized

Data Flow Analysis

2 flows
<class-formality-results> (admin\class-formality-results.php:0)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Formality Attack Surface

Entry Points6
Unprotected0

REST API Routes 5

POST/wp-json/formality/v1/templates/download/admin\class-formality-editor.php:176
GET/wp-json/formality/v1/templates/count/admin\class-formality-editor.php:181
POST/wp-json/formality/v1/token/public\class-formality-submit.php:29
POST/wp-json/formality/v1/send/public\class-formality-submit.php:34
POST/wp-json/formality/v1/upload/public\class-formality-upload.php:29

Shortcodes 1

[formality] public\class-formality-public.php:78
WordPress Hooks 48
filterhttps_ssl_verifyadmin\class-formality-editor.php:226
filterwp_mail_content_typeadmin\class-formality-notifications.php:29
filterwp_mail_from_nameadmin\class-formality-notifications.php:30
filterwp_feed_cache_transient_lifetimeadmin\class-formality-tools.php:90
actionplugins_loadedformality.php:81
actionplugins_loadedincludes\class-formality.php:112
actionadmin_enqueue_scriptsincludes\class-formality.php:126
actionadmin_menuincludes\class-formality.php:127
filtermanage_formality_form_posts_columnsincludes\class-formality.php:128
actionmanage_formality_form_posts_custom_columnincludes\class-formality.php:129
actionadmin_noticesincludes\class-formality.php:130
filterplugin_row_metaincludes\class-formality.php:131
actionadmin_initincludes\class-formality.php:134
filterpost_row_actionsincludes\class-formality.php:135
actionadmin_action_formality_duplicate_formincludes\class-formality.php:136
actionadmin_action_formality_generate_sampleincludes\class-formality.php:137
actionadmin_action_formality_toggle_panelincludes\class-formality.php:138
actionformality_background_download_templatesincludes\class-formality.php:139
actionadd_meta_boxesincludes\class-formality.php:142
actioninitincludes\class-formality.php:143
actionadd_menu_classesincludes\class-formality.php:144
actionadmin_initincludes\class-formality.php:145
filtermanage_formality_result_posts_columnsincludes\class-formality.php:146
actionmanage_formality_result_posts_custom_columnincludes\class-formality.php:147
actionadmin_action_mark_as_formality_resultincludes\class-formality.php:148
filterpost_row_actionsincludes\class-formality.php:149
actionadmin_action_mark_all_formality_resultincludes\class-formality.php:150
actionrestrict_manage_postsincludes\class-formality.php:151
actionadmin_action_export_formality_resultincludes\class-formality.php:152
actionenqueue_block_editor_assetsincludes\class-formality.php:155
actioninitincludes\class-formality.php:156
filterblock_categories_allincludes\class-formality.php:157
filterallowed_block_types_allincludes\class-formality.php:158
actionrest_api_initincludes\class-formality.php:159
filteruse_block_editor_for_post_typeincludes\class-formality.php:160
filtergutenberg_can_edit_post_typeincludes\class-formality.php:161
actionrest_api_initincludes\class-formality.php:162
actioncurrent_screenincludes\class-formality.php:163
actionwp_enqueue_scriptsincludes\class-formality.php:177
filterthe_contentincludes\class-formality.php:178
filtertemplate_includeincludes\class-formality.php:179
filterbody_classincludes\class-formality.php:180
actionwp_print_stylesincludes\class-formality.php:181
actioninitincludes\class-formality.php:182
actionrest_api_initincludes\class-formality.php:185
actionrest_api_initincludes\class-formality.php:188
actioninitincludes\class-formality.php:202
filterupload_dirpublic\class-formality-upload.php:230

Scheduled Events 1

formality_background_download_templates
Maintenance & Trust

Formality Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedJul 1, 2025
PHP min version7.4
Downloads10K

Community Trust

Rating100/100
Number of ratings10
Active installs200
Developer Profile

Formality Developer Profile

Michele Giorgi

1 plugin · 200 total installs

92
trust score
Avg Security Score
89/100
Avg Patch Time
5 days
View full developer profile
Detection Fingerprints

How We Detect Formality

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/formality/dist/styles/formality-admin.css/wp-content/plugins/formality/dist/scripts/formality-admin.js/wp-content/plugins/formality/assets/css/formality-frontend.css/wp-content/plugins/formality/assets/js/formality-frontend.js
Script Paths
/wp-content/plugins/formality/dist/scripts/formality-admin.js/wp-content/plugins/formality/assets/js/formality-frontend.js
Version Parameters
formality/dist/styles/formality-admin.css?ver=formality/dist/scripts/formality-admin.js?ver=formality/assets/css/formality-frontend.css?ver=formality/assets/js/formality-frontend.js?ver=

HTML / DOM Fingerprints

CSS Classes
formality-editorformality-inputformality-stepformality-buttonformality-chat-bubbleformality-formformality-result
HTML Comments
Formality Editor StartFormality Editor EndFormality Form StartFormality Form End
Data Attributes
data-formality-iddata-formality-fielddata-formality-step
JS Globals
Formality
REST Endpoints
/wp-json/formality/v1/forms/wp-json/formality/v1/submissions
Shortcode Output
[formality_form id="[formality_chat id="
FAQ

Frequently Asked Questions about Formality