ForumWP – Forum & Discussion Board Security & Risk Analysis

wordpress.org/plugins/forumwp

Add a forum to your website with ForumWP.

900 active installs v2.1.8 PHP 7.0+ WP 5.5+ Updated Feb 19, 2026
forumreplytopicuser-profileuser-registration
86
A · Safe
CVEs total6
Unpatched0
Last CVEJan 5, 2026
Safety Verdict

Is ForumWP – Forum & Discussion Board Safe to Use in 2026?

Generally Safe

Score 86/100

ForumWP – Forum & Discussion Board has a strong security track record. Known vulnerabilities have been patched promptly.

6 known CVEsLast CVE: Jan 5, 2026Updated 1mo ago
Risk Assessment

The plugin "forumwp" v2.1.8 exhibits a mixed security posture. While it demonstrates strong practices in output escaping (99% proper) and uses prepared statements for a significant portion of its SQL queries (68%), there are notable areas of concern. The substantial attack surface, particularly the 60 unprotected AJAX handlers, presents a significant risk. Taint analysis reveals two high-severity flows with unsanitized paths, indicating potential vulnerabilities that could be exploited if these flows are triggered by malicious input. The plugin's history of six known CVEs, including one critical and one high severity, is a major red flag. Although currently no CVEs are unpatched, the pattern of past vulnerabilities like missing authorization, deserialization, and XSS suggests recurring security weaknesses that require careful attention. The plugin has demonstrated strengths in output handling and SQL query preparation, but the large number of unprotected entry points and past critical vulnerabilities necessitate caution.

Key Concerns

  • 60 unprotected AJAX handlers
  • 2 high severity taint flows
  • 1 critical CVE in history
  • 1 high severity CVE in history
  • Missing nonce checks on 60 AJAX handlers
  • 3 flows with unsanitized paths
Vulnerabilities
6

ForumWP – Forum & Discussion Board Security Vulnerabilities

CVEs by Year

4 CVEs in 2024
2024
1 CVE in 2025
2025
1 CVE in 2026
2026
Patched Has unpatched

Severity Breakdown

Critical
1
High
1
Medium
4

6 total CVEs

CVE-2025-13746medium · 6.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

ForumWP – Forum & Discussion Board <= 2.1.6 - Authenticated (Subscriber+) Stored Cross-Site Scripting via Display Name

Jan 5, 2026 Patched in 2.1.7 (1d)
CVE-2025-67474medium · 4.3Missing Authorization

ForumWP <= 2.1.4 - Missing Authorization

Nov 21, 2025 Patched in 2.1.5 (21d)
CVE-2024-54367critical · 9.8Deserialization of Untrusted Data

ForumWP <= 2.1.0 - Unauthenticated PHP Object Injection

Dec 11, 2024 Patched in 2.1.1 (9d)
CVE-2024-10879medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

ForumWP – Forum & Discussion Board <= 2.1.2 - Reflected Cross-Site Scripting

Dec 5, 2024 Patched in 2.1.3 (7d)
CVE-2024-11204medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

ForumWP – Forum & Discussion Board <= 2.1.2 - Reflected Cross-Site Scripting via url Parameter

Dec 5, 2024 Patched in 2.1.3 (7d)
CVE-2024-8428high · 8.8Authorization Bypass Through User-Controlled Key

ForumWP – Forum & Discussion Board Plugin <= 2.0.2 - Insecure Direct Object Reference to Authenticated (Subscriber+) Privilege Escalation via Account Takeover

Sep 6, 2024 Patched in 2.1.0 (28d)
Code Analysis
Analyzed Mar 16, 2026

ForumWP – Forum & Discussion Board Code Analysis

Dangerous Functions
0
Raw SQL Queries
12
26 prepared
Unescaped Output
9
1028 escaped
Nonce Checks
60
Capability Checks
55
File Operations
4
External Requests
2
Bundled Libraries
1

Bundled Libraries

Select2

SQL Query Safety

68% prepared38 total queries

Output Escaping

99% escaped1037 total outputs
Data Flows
3 unsanitized

Data Flow Analysis

8 flows3 with unsanitized paths
<class-actions-listener> (includes\admin\class-actions-listener.php:0)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
60 unprotected

ForumWP – Forum & Discussion Board Attack Surface

Entry Points77
Unprotected60

AJAX Handlers 65

authwp_ajax_fmwp_run_packageincludes\admin\class-upgrade.php:65
authwp_ajax_fmwp_get_packagesincludes\admin\class-upgrade.php:66
authwp_ajax_fmwp_get_iconsincludes\ajax\class-common.php:23
authwp_ajax_fmwp_dismiss_noticeincludes\ajax\class-common.php:24
authwp_ajax_fmwp_profile_get_contentincludes\ajax\class-common.php:29
noprivwp_ajax_fmwp_profile_get_contentincludes\ajax\class-common.php:30
authwp_ajax_fmwp_profile_topicsincludes\ajax\class-common.php:32
noprivwp_ajax_fmwp_profile_topicsincludes\ajax\class-common.php:33
authwp_ajax_fmwp_profile_repliesincludes\ajax\class-common.php:34
noprivwp_ajax_fmwp_profile_repliesincludes\ajax\class-common.php:35
authwp_ajax_fmwp_get_forumsincludes\ajax\class-common.php:38
noprivwp_ajax_fmwp_get_forumsincludes\ajax\class-common.php:39
authwp_ajax_fmwp_lock_forumincludes\ajax\class-common.php:40
authwp_ajax_fmwp_unlock_forumincludes\ajax\class-common.php:41
authwp_ajax_fmwp_trash_forumincludes\ajax\class-common.php:42
authwp_ajax_fmwp_restore_forumincludes\ajax\class-common.php:43
authwp_ajax_fmwp_remove_forumincludes\ajax\class-common.php:44
authwp_ajax_fmwp_get_topicsincludes\ajax\class-common.php:47
noprivwp_ajax_fmwp_get_topicsincludes\ajax\class-common.php:48
authwp_ajax_fmwp_create_topicincludes\ajax\class-common.php:50
authwp_ajax_fmwp_edit_topicincludes\ajax\class-common.php:51
authwp_ajax_fmwp_get_topicincludes\ajax\class-common.php:53
authwp_ajax_fmwp_pin_topicincludes\ajax\class-common.php:54
authwp_ajax_fmwp_unpin_topicincludes\ajax\class-common.php:55
authwp_ajax_fmwp_lock_topicincludes\ajax\class-common.php:56
authwp_ajax_fmwp_unlock_topicincludes\ajax\class-common.php:57
authwp_ajax_fmwp_trash_topicincludes\ajax\class-common.php:58
authwp_ajax_fmwp_restore_topicincludes\ajax\class-common.php:59
authwp_ajax_fmwp_delete_topicincludes\ajax\class-common.php:60
authwp_ajax_fmwp_mark_spam_topicincludes\ajax\class-common.php:62
authwp_ajax_fmwp_restore_spam_topicincludes\ajax\class-common.php:63
authwp_ajax_fmwp_report_topicincludes\ajax\class-common.php:64
authwp_ajax_fmwp_unreport_topicincludes\ajax\class-common.php:65
authwp_ajax_fmwp_clear_reports_topicincludes\ajax\class-common.php:66
authwp_ajax_fmwp_topic_build_previewincludes\ajax\class-common.php:67
authwp_ajax_fmwp_topic_viewsincludes\ajax\class-common.php:71
noprivwp_ajax_fmwp_topic_viewsincludes\ajax\class-common.php:72
authwp_ajax_fmwp_get_repliesincludes\ajax\class-common.php:76
noprivwp_ajax_fmwp_get_repliesincludes\ajax\class-common.php:77
authwp_ajax_fmwp_get_child_repliesincludes\ajax\class-common.php:78
noprivwp_ajax_fmwp_get_child_repliesincludes\ajax\class-common.php:79
authwp_ajax_fmwp_create_replyincludes\ajax\class-common.php:80
authwp_ajax_fmwp_get_replyincludes\ajax\class-common.php:81
authwp_ajax_fmwp_edit_replyincludes\ajax\class-common.php:82
authwp_ajax_fmwp_trash_replyincludes\ajax\class-common.php:83
authwp_ajax_fmwp_restore_replyincludes\ajax\class-common.php:84
authwp_ajax_fmwp_delete_replyincludes\ajax\class-common.php:85
authwp_ajax_fmwp_mark_spam_replyincludes\ajax\class-common.php:86
authwp_ajax_fmwp_restore_spam_replyincludes\ajax\class-common.php:87
authwp_ajax_fmwp_report_replyincludes\ajax\class-common.php:88
authwp_ajax_fmwp_unreport_replyincludes\ajax\class-common.php:89
authwp_ajax_fmwp_clear_reports_replyincludes\ajax\class-common.php:90
authwp_ajax_fmwp_reply_build_previewincludes\ajax\class-common.php:91
authwp_ajax_fmwp_get_user_suggestionsincludes\ajax\class-common.php:94
authwp_ajax_fmwp_get_forum_categoriesincludes\ajax\class-common.php:98
noprivwp_ajax_fmwp_get_forum_categoriesincludes\ajax\class-common.php:99
authwp_ajax_fmwp_get_bbpress_forums_countmodules\migration\class-init.php:68
authwp_ajax_fmwp_get_bbpress_topics_countmodules\migration\class-init.php:69
authwp_ajax_fmwp_get_bbpress_topic_tags_countmodules\migration\class-init.php:70
authwp_ajax_fmwp_get_bbpress_replies_countmodules\migration\class-init.php:71
authwp_ajax_fmwp_run_migration_forums_bbpressmodules\migration\class-init.php:73
authwp_ajax_fmwp_run_migration_topics_bbpressmodules\migration\class-init.php:74
authwp_ajax_fmwp_run_migration_topic_tags_bbpressmodules\migration\class-init.php:75
authwp_ajax_fmwp_run_migration_replies_bbpressmodules\migration\class-init.php:77
authwp_ajax_fmwp_migration_finishedmodules\migration\class-init.php:78

Shortcodes 12

[fmwp_login_form] includes\frontend\class-shortcodes.php:52
[fmwp_registration_form] includes\frontend\class-shortcodes.php:53
[fmwp_new_forum] includes\frontend\class-shortcodes.php:54
[fmwp_forums] includes\frontend\class-shortcodes.php:55
[fmwp_topics] includes\frontend\class-shortcodes.php:56
[fmwp_forum] includes\frontend\class-shortcodes.php:58
[fmwp_topic] includes\frontend\class-shortcodes.php:59
[fmwp_user_profile] includes\frontend\class-shortcodes.php:61
[fmwp_forum_categories] includes\frontend\class-shortcodes.php:63
[fmwp_user_topics] includes\frontend\class-shortcodes.php:68
[fmwp_user_replies] includes\frontend\class-shortcodes.php:69
[fmwp_user_edit] includes\frontend\class-shortcodes.php:70
WordPress Hooks 164
actionadmin_noticesforumwp.php:47
actionadmin_noticesforumwp.php:69
actionplugins_loadedforumwp.php:97
actionwp_loadedforumwp.php:125
actionadmin_initincludes\admin\class-actions-listener.php:21
filterfmwp_change_settings_before_saveincludes\admin\class-actions-listener.php:24
filterfmwp_change_settings_before_saveincludes\admin\class-actions-listener.php:25
actionfmwp_settings_saveincludes\admin\class-actions-listener.php:27
actionadmin_initincludes\admin\class-actions-listener.php:29
actionadmin_initincludes\admin\class-actions-listener.php:30
filterdisplay_post_statesincludes\admin\class-columns.php:24
filtermanage_edit-fmwp_forum_columnsincludes\admin\class-columns.php:26
actionmanage_fmwp_forum_posts_custom_columnincludes\admin\class-columns.php:27
filtermanage_edit-fmwp_forum_category_columnsincludes\admin\class-columns.php:29
actionmanage_fmwp_forum_category_custom_columnincludes\admin\class-columns.php:30
filtermanage_edit-fmwp_topic_tag_columnsincludes\admin\class-columns.php:32
actionmanage_fmwp_topic_tag_custom_columnincludes\admin\class-columns.php:33
filtermanage_edit-fmwp_topic_columnsincludes\admin\class-columns.php:35
actionmanage_fmwp_topic_posts_custom_columnincludes\admin\class-columns.php:36
actionpre_get_postsincludes\admin\class-columns.php:38
actionpre_get_postsincludes\admin\class-columns.php:40
filterviews_edit-fmwp_replyincludes\admin\class-columns.php:42
filterviews_edit-fmwp_topicincludes\admin\class-columns.php:43
filterpost_row_actionsincludes\admin\class-columns.php:44
filterviews_edit-fmwp_forumincludes\admin\class-columns.php:46
filterviews_edit-fmwp_topicincludes\admin\class-columns.php:47
actionpre_get_postsincludes\admin\class-columns.php:48
filterviews_edit-fmwp_replyincludes\admin\class-columns.php:50
filterviews_edit-fmwp_topicincludes\admin\class-columns.php:51
actionpre_get_postsincludes\admin\class-columns.php:52
actionforumwp_initincludes\admin\class-enqueue.php:23
actionadmin_enqueue_scriptsincludes\admin\class-enqueue.php:24
actionadmin_menuincludes\admin\class-menu.php:21
filteradmin_body_classincludes\admin\class-menu.php:23
filtersubmenu_fileincludes\admin\class-menu.php:24
actionadmin_initincludes\admin\class-menu.php:26
filterparent_fileincludes\admin\class-menu.php:107
filterparent_fileincludes\admin\class-menu.php:115
filtersubmenu_fileincludes\admin\class-menu.php:119
actionload-post.phpincludes\admin\class-metabox.php:26
actionload-post-new.phpincludes\admin\class-metabox.php:27
actionadd_meta_boxesincludes\admin\class-metabox.php:38
actionsave_postincludes\admin\class-metabox.php:39
actionadd_meta_boxesincludes\admin\class-metabox.php:43
actionsave_postincludes\admin\class-metabox.php:44
actionadd_meta_boxesincludes\admin\class-metabox.php:48
actionadmin_initincludes\admin\class-notices.php:29
actionadmin_noticesincludes\admin\class-notices.php:30
actionforumwp_initincludes\admin\class-settings.php:26
actioncurrent_screenincludes\admin\class-settings.php:28
actionadmin_initincludes\admin\class-settings.php:29
actionfmwp_before_settings_email__contentincludes\admin\class-settings.php:31
filterfmwp_section_fieldsincludes\admin\class-settings.php:32
actionplugins_loadedincludes\admin\class-settings.php:34
filterfmwp_settings_custom_tabsincludes\admin\class-settings.php:35
filterfmwp_settings_section_override_templates__contentincludes\admin\class-settings.php:36
filterdebug_informationincludes\admin\class-site-health.php:21
actionadmin_menuincludes\admin\class-upgrade.php:60
filterfmwp_forum_upgrade_last_updateincludes\admin\packages\2.0\locked.php:28
filterfmwp_disable_email_notification_by_hookincludes\admin\packages\2.0\locked.php:29
filterfmwp_topic_upgrade_last_updateincludes\admin\packages\2.0\locked.php:55
filterfmwp_topic_upgrade_last_updateincludes\admin\packages\2.0\solved.php:28
filterfmwp_disable_email_notification_by_hookincludes\admin\packages\2.0\solved.php:29
filterfmwp_topic_upgrade_last_updateincludes\admin\packages\2.0.1\spam.php:19
filterfmwp_forum_upgrade_last_updateincludes\admin\packages\2.0.1\spam.php:20
actionforumwp_initincludes\class-modules.php:29
actioninitincludes\common\class-blocks.php:24
actionplugins_loadedincludes\common\class-common.php:29
actioninitincludes\common\class-common.php:31
actionforumwp_initincludes\common\class-common.php:33
actionforumwp_initincludes\common\class-common.php:34
actionadmin_bar_menuincludes\common\class-common.php:36
actionadmin_bar_menuincludes\common\class-common.php:37
filterinsert_user_metaincludes\common\class-common.php:39
actiondelete_postincludes\common\class-common.php:41
filterwp_insert_post_dataincludes\common\class-common.php:43
actionsave_postincludes\common\class-common.php:44
actionsave_postincludes\common\class-common.php:46
filterfmwp_sanitize_option_valueincludes\common\class-common.php:48
filterpre_get_postsincludes\common\class-common.php:50
filtermce_buttonsincludes\common\class-common.php:694
actionafter_wp_tiny_mceincludes\common\class-common.php:696
actionforumwp_initincludes\common\class-enqueue.php:65
actionadmin_enqueue_scriptsincludes\common\class-enqueue.php:67
actionwp_enqueue_scriptsincludes\common\class-enqueue.php:68
filterfmwp_frontend_common_styles_depsincludes\common\class-enqueue.php:70
filterfmwp_admin_common_styles_depsincludes\common\class-enqueue.php:71
actionenqueue_block_assetsincludes\common\class-enqueue.php:73
filterblock_categories_allincludes\common\class-enqueue.php:77
filterblock_categoriesincludes\common\class-enqueue.php:79
actionforumwp_initincludes\common\class-forum.php:39
actionsave_post_fmwp_forumincludes\common\class-forum.php:41
filterthe_postsincludes\common\class-forum.php:43
filterposts_whereincludes\common\class-forum.php:44
actiontransition_post_statusincludes\common\class-forum.php:46
actionwp_logoutincludes\common\class-login.php:27
filterlogout_urlincludes\common\class-login.php:28
actionwp_login_failedincludes\common\class-login.php:29
filterauthenticateincludes\common\class-login.php:31
actiontemplate_redirectincludes\common\class-login.php:32
actionlogin_form_bottomincludes\common\class-login.php:34
filterlogin_redirectincludes\common\class-login.php:35
filterwp_safe_redirect_fallbackincludes\common\class-login.php:52
filterwp_safe_redirect_fallbackincludes\common\class-login.php:76
actionforumwp_initincludes\common\class-options.php:32
actionforumwp_initincludes\common\class-reply.php:31
actionsave_post_fmwp_replyincludes\common\class-reply.php:33
filterposts_whereincludes\common\class-reply.php:35
filterpost_type_linkincludes\common\class-reply.php:36
filterthe_postsincludes\common\class-reply.php:38
actiontransition_post_statusincludes\common\class-reply.php:40
filterwp_loadedincludes\common\class-rewrite.php:22
filterquery_varsincludes\common\class-rewrite.php:25
filterrewrite_rules_arrayincludes\common\class-rewrite.php:26
actiontemplate_redirectincludes\common\class-rewrite.php:29
actionforumwp_initincludes\common\class-topic.php:46
actionsave_post_fmwp_topicincludes\common\class-topic.php:48
actionwp_headincludes\common\class-topic.php:50
filterthe_postsincludes\common\class-topic.php:52
filterposts_whereincludes\common\class-topic.php:54
actiontransition_post_statusincludes\common\class-topic.php:56
actioninitincludes\frontend\class-actions-listener.php:22
filterwp_safe_redirect_fallbackincludes\frontend\class-actions-listener.php:150
actionfmwp_before_forums_listincludes\frontend\class-common.php:21
actionfmwp_before_topics_listincludes\frontend\class-common.php:22
actionfmwp_before_individual_forumincludes\frontend\class-common.php:23
actionfmwp_before_individual_topicincludes\frontend\class-common.php:24
actionforumwp_initincludes\frontend\class-enqueue.php:23
actionwp_enqueue_scriptsincludes\frontend\class-enqueue.php:24
filtermce_buttonsincludes\frontend\class-forms.php:780
filterbody_classincludes\frontend\class-shortcodes.php:72
filtersingle_templateincludes\frontend\class-shortcodes.php:76
filterrequestincludes\frontend\class-shortcodes.php:77
filtertemplate_includeincludes\frontend\class-shortcodes.php:153
actionwp_headincludes\frontend\class-shortcodes.php:190
filterthe_contentincludes\frontend\class-shortcodes.php:191
filterpost_classincludes\frontend\class-shortcodes.php:192
filterthe_titleincludes\frontend\class-shortcodes.php:216
filterthe_titleincludes\frontend\class-shortcodes.php:295
filterthe_contentincludes\frontend\class-shortcodes.php:296
filterpost_classincludes\frontend\class-shortcodes.php:297
filterthe_titleincludes\frontend\class-shortcodes.php:317
filterthe_contentincludes\frontend\class-shortcodes.php:318
filterpost_classincludes\frontend\class-shortcodes.php:319
actionwp_footerincludes\frontend\class-shortcodes.php:495
actionwp_footerincludes\frontend\class-shortcodes.php:568
actionwp_footerincludes\frontend\class-shortcodes.php:619
actionwp_footerincludes\frontend\class-shortcodes.php:624
actionwp_footerincludes\frontend\class-shortcodes.php:684
actionwp_footerincludes\frontend\class-shortcodes.php:696
actionwp_footerincludes\frontend\class-shortcodes.php:699
filterfmwp_settings_custom_subtabsmodules\migration\class-init.php:59
filterfmwp_modules_settings_sectionsmodules\migration\class-init.php:60
filterfmwp_settings_section_modules_migration_contentmodules\migration\class-init.php:61
actionfmwp_settings_page_modules_migration_before_sectionmodules\migration\class-init.php:62
actionadmin_enqueue_scriptsmodules\migration\class-init.php:64
filterfmwp_late_escaping_allowed_tagsmodules\migration\class-init.php:379
filterfmwp_forum_upgrade_last_updatemodules\migration\class-init.php:421
filterfmwp_disable_email_notification_by_hookmodules\migration\class-init.php:422
filterfmwp_topic_upgrade_last_updatemodules\migration\class-init.php:585
filterfmwp_disable_email_notification_by_hookmodules\migration\class-init.php:586
filterfmwp_reply_upgrade_last_updatemodules\migration\class-init.php:807
filterfmwp_disable_email_notification_by_hookmodules\migration\class-init.php:808
filterthe_contenttemplates\single-forum-info.php:149
Maintenance & Trust

ForumWP – Forum & Discussion Board Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedFeb 19, 2026
PHP min version7.0
Downloads30K

Community Trust

Rating70/100
Number of ratings11
Active installs900
Alternatives

ForumWP – Forum & Discussion Board Alternatives

Developer Profile

ForumWP – Forum & Discussion Board Developer Profile

Ultimate Member

3 plugins · 202K total installs

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

How We Detect ForumWP – Forum & Discussion Board

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/forumwp/assets/admin/css/common.css/wp-content/plugins/forumwp/assets/admin/css/forms.css/wp-content/plugins/forumwp/assets/admin/js/common.js/wp-content/plugins/forumwp/assets/admin/js/forms.js/wp-content/plugins/forumwp/assets/admin/js/global.js
Script Paths
/wp-content/plugins/forumwp/assets/admin/js/global.js/wp-content/plugins/forumwp/assets/admin/js/common.js/wp-content/plugins/forumwp/assets/admin/js/forms.js
Version Parameters
forumwp/assets/admin/css/common.css?ver=forumwp/assets/admin/css/forms.css?ver=forumwp/assets/admin/js/common.js?ver=forumwp/assets/admin/js/forms.js?ver=forumwp/assets/admin/js/global.js?ver=

HTML / DOM Fingerprints

CSS Classes
fmwp-adminfmwp-formsfmwp-common-admin
Data Attributes
data-nonce=\"fmwp-backend-nonce\"
JS Globals
fmwp_admin_data
FAQ

Frequently Asked Questions about ForumWP – Forum & Discussion Board