WPCOM Member Security & Risk Analysis

wordpress.org/plugins/wpcom-member

WPCOM Member - User profile & membership plugin for WordPress

1K active installs v1.7.19 PHP 7.4+ WP 6.2+ Updated Feb 25, 2026
%e7%94%a8%e6%88%b7%e4%b8%ad%e5%bf%83membership
80
B · Generally Safe
CVEs total7
Unpatched0
Last CVEDec 15, 2025
Safety Verdict

Is WPCOM Member Safe to Use in 2026?

Mostly Safe

Score 80/100

WPCOM Member is generally safe to use. 7 past CVEs were resolved. Keep it updated.

7 known CVEsLast CVE: Dec 15, 2025Updated 1mo ago
Risk Assessment

The 'wpcom-member' plugin version 1.7.19 exhibits a concerning security posture, despite some positive aspects. While it demonstrates good practices in utilizing prepared statements for SQL queries and proper output escaping, significant vulnerabilities are present in its attack surface and past security history. A substantial number of AJAX handlers (32 out of 39) lack authentication checks, creating a wide entry point for attackers. Furthermore, the taint analysis revealed four high-severity flows with unsanitized paths, indicating potential for critical exploits if these flows are triggered by user input. The plugin's vulnerability history is also a major red flag, with a significant number of known CVEs, including two critical and four high-severity ones, even though none are currently unpatched. The recurring vulnerability types such as Remote File Inclusion, SQL Injection, and Cross-site Scripting suggest fundamental security weaknesses that have been historically difficult to fully address. While the absence of bundled libraries and the use of nonces and capability checks on some entry points are positive, the numerous unprotected AJAX handlers and the history of severe vulnerabilities paint a picture of a plugin that requires immediate attention and remediation to mitigate significant risks.

Key Concerns

  • High number of AJAX handlers without auth checks
  • 4 High severity taint flows with unsanitized paths
  • 2 Critical CVEs historically
  • 4 High severity CVEs historically
  • Recurring vulnerability types (RFI, SQLi, XSS, Auth)
Vulnerabilities
7

WPCOM Member Security Vulnerabilities

CVEs by Year

2 CVEs in 2024
2024
5 CVEs in 2025
2025
Patched Has unpatched

Severity Breakdown

Critical
2
High
4
Medium
1

7 total CVEs

CVE-2025-14002high · 8.1Improper Authentication

WPCOM Member <= 1.7.16 - Authentication Bypass via Weak OTP

Dec 15, 2025 Patched in 1.7.17 (1d)
CVE-2025-11920high · 8.8Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion')

WPCOM Member <= 1.7.14 - Authenticated (Contributor+) Local File Inclusion via Shortcode

Oct 31, 2025 Patched in 1.7.15 (1d)
CVE-2025-39570high · 8.8Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion')

WPCOM Member <= 1.7.7 - Authenticated (Contributor+) Local File Inclusion

Apr 16, 2025 Patched in 1.7.8 (7d)
CVE-2025-2221high · 7.5Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

WPCOM Member <= 1.7.6 - Unauthenticated Time-Based SQL Injection

Mar 13, 2025 Patched in 1.7.7 (1d)
CVE-2025-1475critical · 9.8Improper Authentication

WPCOM Member <= 1.7.5 - Authentication Bypass via 'user_phone'

Mar 6, 2025 Patched in 1.7.6 (1d)
CVE-2024-47378medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

WPCOM Member <= 1.5.4 - Reflected Cross-Site Scripting

Sep 30, 2024 Patched in 1.5.4.1 (11d)
CVE-2024-7493critical · 9.8Improper Privilege Management

WPCOM Member <= 1.5.2.1 - Unauthenticated Privilege Escalation via User Meta

Sep 6, 2024 Patched in 1.5.3 (4d)
Code Analysis
Analyzed Mar 16, 2026

WPCOM Member Code Analysis

Dangerous Functions
0
Raw SQL Queries
9
31 prepared
Unescaped Output
47
324 escaped
Nonce Checks
8
Capability Checks
18
File Operations
2
External Requests
8
Bundled Libraries
0

SQL Query Safety

78% prepared40 total queries

Output Escaping

87% escaped371 total outputs
Data Flows
10 unsanitized

Data Flow Analysis

13 flows10 with unsanitized paths
login_modal (includes\class-member.php:972)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
32 unprotected

WPCOM Member Attack Surface

Entry Points41
Unprotected32

AJAX Handlers 39

authwp_ajax_wpcom_cropped_uploadincludes\class-member.php:17
authwp_ajax_wpcom_user_postsincludes\class-member.php:22
noprivwp_ajax_wpcom_user_postsincludes\class-member.php:23
authwp_ajax_wpcom_user_commentsincludes\class-member.php:24
noprivwp_ajax_wpcom_user_commentsincludes\class-member.php:25
authwp_ajax_wpcom_login_modalincludes\class-member.php:26
noprivwp_ajax_wpcom_login_modalincludes\class-member.php:27
noprivwp_ajax_wpcom_loginincludes\form-validation.php:108
noprivwp_ajax_wpcom_registerincludes\form-validation.php:215
authwp_ajax_wpcom_approve_resendincludes\form-validation.php:311
noprivwp_ajax_wpcom_approve_resendincludes\form-validation.php:312
authwp_ajax_wpcom_lostpasswordincludes\form-validation.php:374
noprivwp_ajax_wpcom_lostpasswordincludes\form-validation.php:375
authwp_ajax_wpcom_resetpasswordincludes\form-validation.php:454
noprivwp_ajax_wpcom_resetpasswordincludes\form-validation.php:455
authwp_ajax_wpcom_accountbindincludes\form-validation.php:537
noprivwp_ajax_wpcom_accountbindincludes\form-validation.php:538
authwp_ajax_wpcom_social_unbindincludes\form-validation.php:867
noprivwp_ajax_wpcom_social_unbindincludes\form-validation.php:868
authwp_ajax_wpcom_aliyun_captcha_verifyincludes\form-validation.php:915
noprivwp_ajax_wpcom_aliyun_captcha_verifyincludes\form-validation.php:916
authwp_ajax_wpcom_is_loginincludes\member-functions.php:741
noprivwp_ajax_wpcom_is_loginincludes\member-functions.php:742
authwp_ajax_wpcom_captchaincludes\member-functions.php:1103
noprivwp_ajax_wpcom_captchaincludes\member-functions.php:1104
authwp_ajax_wpcom_send_sms_codeincludes\member-functions.php:1245
noprivwp_ajax_wpcom_send_sms_codeincludes\member-functions.php:1246
authwp_ajax_wpcom_sl_loginincludes\social-login.php:38
noprivwp_ajax_wpcom_sl_loginincludes\social-login.php:39
authwp_ajax_wpcom_sl_createincludes\social-login.php:41
noprivwp_ajax_wpcom_sl_createincludes\social-login.php:42
authwp_ajax_wpcom_wechat2_login_checkincludes\social-login.php:44
noprivwp_ajax_wpcom_wechat2_login_checkincludes\social-login.php:45
authwp_ajax_wpcom_wechat2_qrcodeincludes\social-login.php:47
noprivwp_ajax_wpcom_wechat2_qrcodeincludes\social-login.php:48
authwp_ajax_wpcom_weapp_qrcodeincludes\social-login.php:50
noprivwp_ajax_wpcom_weapp_qrcodeincludes\social-login.php:51
authwp_ajax_wpcom_wxmp_notifyincludes\social-login.php:53
noprivwp_ajax_wpcom_wxmp_notifyincludes\social-login.php:54

Shortcodes 2

[wpcom-member] includes\class-member.php:14
[wpcom-social-login] includes\social-login.php:57
WordPress Hooks 143
actionadmin_menuadmin\includes\class-plugin-panel.php:23
actionafter_setup_themeadmin\includes\class-plugin-panel.php:26
actionadmin_enqueue_scriptsadmin\includes\class-plugin-panel.php:43
filterget_post_metadataadmin\includes\class-plugin-panel.php:50
filteradd_post_metadataadmin\includes\class-plugin-panel.php:51
filterupdate_post_metadataadmin\includes\class-plugin-panel.php:52
filterget_term_metadataadmin\includes\class-plugin-panel.php:54
filteradd_term_metadataadmin\includes\class-plugin-panel.php:55
filterupdate_term_metadataadmin\includes\class-plugin-panel.php:56
filterget_user_metadataadmin\includes\class-plugin-panel.php:58
filteradd_user_metadataadmin\includes\class-plugin-panel.php:59
filterupdate_user_metadataadmin\includes\class-plugin-panel.php:60
actionwp_enqueue_scriptsincludes\class-member.php:16
actionwpcom_options_updatedincludes\class-member.php:18
actionwpcom-member_panel_formincludes\class-member.php:19
actionsave_post_pageincludes\class-member.php:20
actionwpcom_cron_flush_rewrite_rulesincludes\class-member.php:21
actionwp_logoutincludes\class-member.php:28
actiontemplate_redirectincludes\class-member.php:29
actionparse_queryincludes\class-member.php:30
actionwpcom_register_formincludes\class-member.php:31
actionwpcom_login_formincludes\class-member.php:32
actionwpcom_lostpassword_form_defaultincludes\class-member.php:33
actionwpcom_lostpassword_form_send_successincludes\class-member.php:34
actionwpcom_lostpassword_form_resetincludes\class-member.php:35
actionwpcom_lostpassword_form_finishedincludes\class-member.php:36
actionwpcom_social_loginincludes\class-member.php:37
actionwpcom_approve_resend_formincludes\class-member.php:38
actionuser_registerincludes\class-member.php:39
actionwpcom_social_new_userincludes\class-member.php:40
actionlogin_form_registerincludes\class-member.php:41
actionlogin_headincludes\class-member.php:42
actionwpmx_before_member_accountincludes\class-member.php:43
filterwpmx_localize_scriptincludes\class-member.php:45
filterupload_dirincludes\class-member.php:46
filterget_avatar_urlincludes\class-member.php:47
filterpre_get_avatarincludes\class-member.php:48
filterrewrite_rules_arrayincludes\class-member.php:49
filterquery_varsincludes\class-member.php:50
filterregister_urlincludes\class-member.php:51
filterlogin_urlincludes\class-member.php:52
filterlogout_urlincludes\class-member.php:53
filterlostpassword_urlincludes\class-member.php:54
filterauthor_linkincludes\class-member.php:55
filtershow_admin_barincludes\class-member.php:56
filterwp_title_partsincludes\class-member.php:57
filteruser_has_capincludes\class-member.php:58
filterauthenticateincludes\class-member.php:59
filterviews_usersincludes\class-member.php:60
actionpre_get_usersincludes\class-member.php:61
actionpre_user_queryincludes\class-member.php:62
filterbulk_actions-usersincludes\class-member.php:63
filterhandle_bulk_actions-usersincludes\class-member.php:64
filterbody_classincludes\class-member.php:65
filteruser_contactmethodsincludes\class-member.php:66
filterwp_mailincludes\class-member.php:67
filterdisplay_post_statesincludes\class-member.php:68
filtermanage_users_columnsincludes\class-member.php:69
filtermanage_users_custom_columnincludes\class-member.php:70
filtermanage_users_sortable_columnsincludes\class-member.php:71
filterusers_pre_queryincludes\class-member.php:72
filterwp_sitemaps_posts_query_argsincludes\class-member.php:73
filterwp_send_new_user_notification_to_userincludes\class-member.php:74
filterwp_pre_insert_user_dataincludes\class-member.php:76
filtersend_email_change_emailincludes\class-member.php:77
filterget_canonical_urlincludes\class-member.php:78
filterpre_comment_approvedincludes\class-member.php:80
filterqapress_pre_insert_commentincludes\class-member.php:81
filterwp_insert_post_dataincludes\class-member.php:82
filterrest_pre_insert_postincludes\class-member.php:83
filterwpcom_tougao_noticeincludes\class-member.php:84
actionadmin_noticesincludes\class-member.php:85
filterqapress_pre_insert_questionincludes\class-member.php:86
actionadmin_initincludes\class-member.php:105
filterget_user_metadataincludes\class-member.php:106
actionsave_post_postincludes\class-member.php:108
actionsave_post_qa_postincludes\class-member.php:109
actiontransition_comment_statusincludes\class-member.php:110
actionwp_insert_commentincludes\class-member.php:111
actionwpcom_user_data_statsincludes\class-member.php:112
actionwpcom_profile_after_descriptionincludes\class-member.php:113
filterwpcom_posts_countincludes\class-member.php:115
filterwpcom_comments_countincludes\class-member.php:116
filterwpcom_questions_countincludes\class-member.php:118
filterwpcom_answers_countincludes\class-member.php:119
filterwp_send_new_user_notification_to_adminincludes\class-member.php:1700
filterredirect_post_locationincludes\class-member.php:2195
actionwpcom_themer_maybe_updatedincludes\class-sesstion.php:151
actionafter_setup_themeincludes\class-sesstion.php:154
actionwpcom_account_general_postincludes\form-validation.php:5
actionwpcom_account_bind_postincludes\form-validation.php:38
actionwpcom_account_password_postincludes\form-validation.php:72
filterretrieve_password_messageincludes\form-validation.php:497
filterretrieve_password_notification_emailincludes\form-validation.php:532
actionafter_setup_themeincludes\functions.php:7
actionwpcom_sessions_clearincludes\functions.php:38
actionwp_enqueue_scriptsincludes\functions.php:43
actionadmin_enqueue_scriptsincludes\functions.php:44
filterpre_option_wpmx_optionsincludes\functions.php:47
filteroption_wpmx_optionsincludes\functions.php:55
actionadmin_initincludes\functions.php:77
actionadmin_menuincludes\functions.php:82
actionwoocommerce_before_edit_account_address_formincludes\functions.php:196
filterwoocommerce_account_menu_itemsincludes\functions.php:197
filterwoocommerce_get_cancel_order_urlincludes\functions.php:208
filterwoocommerce_is_account_pageincludes\functions.php:227
filterwpcom_account_tabsincludes\functions.php:232
filterwoocommerce_get_view_order_urlincludes\functions.php:281
filterwoocommerce_get_myaccount_page_permalinkincludes\functions.php:319
filterwpcom_settingsincludes\functions.php:328
filterwpcom-member-pro_settingsincludes\functions.php:357
filterwpcom-member_form_optionsincludes\functions.php:393
filtereztoc_do_shortcodeincludes\functions.php:880
filterez_toc_maybe_apply_the_content_filterincludes\functions.php:885
filterwpcom_page_can_cacheincludes\functions.php:892
actionwpcom_delete_post_cacheincludes\functions.php:899
filterget_comment_author_urlincludes\functions.php:907
filterwpcom_login_form_itemsincludes\member-functions.php:5
filterwpcom_register_form_itemsincludes\member-functions.php:31
filterwpcom_email_code_itemsincludes\member-functions.php:83
filterwpcom_account_tabsincludes\member-functions.php:113
filterwpcom_account_tabs_general_metasincludes\member-functions.php:150
filterwpcom_account_tabs_bind_metasincludes\member-functions.php:241
filterwpcom_account_tabs_password_metasincludes\member-functions.php:323
filterwpcom_lostpassword_form_itemsincludes\member-functions.php:360
filterwpcom_resetpassword_form_itemsincludes\member-functions.php:378
filterwpcom_member_errorsincludes\member-functions.php:411
filterwpcom_profile_tabsincludes\member-functions.php:432
filterwpcom_socialsincludes\member-functions.php:447
filterwpcom_approve_resend_form_itemsincludes\member-functions.php:549
filterwpmx_localize_scriptincludes\member-functions.php:1087
actionadmin_initincludes\nav-menu.php:7
filterwp_get_nav_menu_itemsincludes\nav-menu.php:8
filterwpcom_is_loginincludes\nav-menu.php:11
filterwpcom_profile_menusincludes\nav-menu.php:12
actioninitincludes\nav-menu.php:224
filterprevious_posts_link_attributesincludes\required.php:103
filternext_posts_link_attributesincludes\required.php:107
actionpre_handle_404includes\required.php:120
actioninitincludes\social-login.php:34
actionbody_classincludes\social-login.php:35
actionwp_footerincludes\social-login.php:36
actionwpmx_cron_flush_rewrite_rulesindex.php:26

Scheduled Events 3

wpcom_cron_flush_rewrite_rules
wpcom_sessions_clear
wpmx_cron_flush_rewrite_rules
Maintenance & Trust

WPCOM Member Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedFeb 25, 2026
PHP min version7.4
Downloads66K

Community Trust

Rating0/100
Number of ratings0
Active installs1K
Developer Profile

WPCOM Member Developer Profile

Lomu

2 plugins · 1K total installs

93
trust score
Avg Security Score
90/100
Avg Patch Time
4 days
View full developer profile
Detection Fingerprints

How We Detect WPCOM Member

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/wpcom-member/assets/css/style.css/wp-content/plugins/wpcom-member/assets/js/member.js/wp-content/plugins/wpcom-member/assets/css/cropper.min.css/wp-content/plugins/wpcom-member/assets/js/cropper.min.js/wp-content/plugins/wpcom-member/assets/js/member-shortcode.js
Script Paths
/wp-content/plugins/wpcom-member/assets/js/member.js/wp-content/plugins/wpcom-member/assets/js/cropper.min.js/wp-content/plugins/wpcom-member/assets/js/member-shortcode.js
Version Parameters
wpcom-member/assets/css/style.css?ver=wpcom-member/assets/js/member.js?ver=

HTML / DOM Fingerprints

CSS Classes
wpcom-member-register-formwpcom-member-login-formwpcom-member-profilewpcom-member-shortcode
HTML Comments
<!-- wpcom-member: Shortcode START --><!-- wpcom-member: Shortcode END -->
Data Attributes
data-wpcom-member-nonce
JS Globals
wpcom_member_params
REST Endpoints
/wp-json/wpcom-member/v1/user-posts/wp-json/wpcom-member/v1/user-comments/wp-json/wpcom-member/v1/login-modal
Shortcode Output
[wpcom-member]
FAQ

Frequently Asked Questions about WPCOM Member