WP Weixin Security & Risk Analysis

wordpress.org/plugins/wp-weixin

WordPress WeChat integration

400 active installs v1.3.18 PHP 7.0+ WP 4.9.5+ Updated Mar 10, 2025
wechatwechat-share%e5%be%ae%e4%bf%a1%e5%be%ae%e4%bf%a1%e5%85%ac%e4%bc%97%e5%8f%b7%e5%be%ae%e4%bf%a1%e5%88%86%e4%ba%ab
92
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is WP Weixin Safe to Use in 2026?

Generally Safe

Score 92/100

WP Weixin has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 1yr ago
Risk Assessment

The "wp-weixin" plugin v1.3.18 exhibits a generally good security posture, with several strong protective measures in place. The plugin demonstrates excellent practice by using prepared statements for all SQL queries and a high percentage of properly escaped output, significantly mitigating risks of SQL injection and cross-site scripting (XSS). The absence of known CVEs and historical vulnerabilities is a positive indicator, suggesting a commitment to security or a lack of exploitable issues found to date. The plugin also incorporates nonce checks and capability checks, which are crucial for securing its entry points.

However, the analysis does reveal a notable area of concern: one of the seven AJAX handlers lacks authentication checks. This represents a direct attack vector that could be exploited by unauthenticated users, potentially leading to unauthorized actions or data manipulation, depending on the functionality of that specific handler. While the taint analysis did not reveal critical or high severity flows with unsanitized paths, the presence of three such flows, even if of lower severity, warrants attention as they could potentially be chained or exploited in specific contexts. The external HTTP requests, though only two, should also be monitored for potential vulnerabilities in the external services they interact with.

In conclusion, the "wp-weixin" plugin has a solid foundation with robust data handling practices. The primary weakness lies in the unprotected AJAX handler, which presents a clear and immediate risk. Addressing this single unprotected entry point should be the top priority. The presence of some unsanitized flows, while not currently rated critical, suggests a need for continued code review and vigilance. Overall, the plugin is relatively secure but requires a focused effort to close the identified gap in authentication for its AJAX endpoints.

Key Concerns

  • AJAX handler without authentication
  • Flows with unsanitized paths (low severity)
Vulnerabilities
None known

WP Weixin Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 16, 2026

WP Weixin Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
10 prepared
Unescaped Output
17
278 escaped
Nonce Checks
11
Capability Checks
8
File Operations
0
External Requests
2
Bundled Libraries
0

SQL Query Safety

100% prepared10 total queries

Output Escaping

94% escaped295 total outputs
Data Flows
3 unsanitized

Data Flow Analysis

5 flows3 with unsanitized paths
pre_oauth (inc\class-wp-weixin-auth.php:582)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
1 unprotected

WP Weixin Attack Surface

Entry Points7
Unprotected1

AJAX Handlers 7

noprivwp_ajax_wp_weixin_get_auth_qrinc\class-wp-weixin-auth.php:40
noprivwp_ajax_wp_weixin_auth_heartbeat_pulseinc\class-wp-weixin-auth.php:42
authwp_ajax_wp_weixin_get_bind_qrinc\class-wp-weixin-bind.php:24
authwp_ajax_wp_weixin_bind_heartbeat_pulseinc\class-wp-weixin-bind.php:26
authwp_ajax_wp_weixin_unbindinc\class-wp-weixin-bind.php:28
authwp_ajax_add_wechat_menu_iteminc\class-wp-weixin-menu.php:25
authwp_ajax_wp_weixin_get_settings_qrinc\class-wp-weixin-settings.php:34
WordPress Hooks 96
actioninitinc\class-wp-weixin-auth.php:27
actionparse_requestinc\class-wp-weixin-auth.php:29
actionwp_logoutinc\class-wp-weixin-auth.php:31
filterwp_weixin_auth_neededinc\class-wp-weixin-auth.php:34
actionlogin_enqueue_scriptsinc\class-wp-weixin-auth.php:38
actionlogin_footerinc\class-wp-weixin-auth.php:46
actionum_after_forminc\class-wp-weixin-auth.php:48
actionwoocommerce_login_form_endinc\class-wp-weixin-auth.php:50
filterum_get_option_filter__accessibleinc\class-wp-weixin-auth.php:52
actionwoocommerce_edit_account_forminc\class-wp-weixin-auth.php:57
actionwp_weixin_endpointsinc\class-wp-weixin-auth.php:59
actiontemplate_redirectinc\class-wp-weixin-auth.php:126
actionwpinc\class-wp-weixin-auth.php:240
filterauth_cookie_expirationinc\class-wp-weixin-auth.php:241
actiontemplate_redirectinc\class-wp-weixin-auth.php:243
actiontemplate_redirectinc\class-wp-weixin-auth.php:324
actionwp_footerinc\class-wp-weixin-auth.php:526
actionshutdowninc\class-wp-weixin-auth.php:527
actionwp_print_scriptsinc\class-wp-weixin-auth.php:534
actionwp_print_stylesinc\class-wp-weixin-auth.php:535
filtertemplate_includeinc\class-wp-weixin-auth.php:538
actionwp_footerinc\class-wp-weixin-auth.php:964
actionshutdowninc\class-wp-weixin-auth.php:965
actionwp_print_scriptsinc\class-wp-weixin-auth.php:971
actionwp_print_stylesinc\class-wp-weixin-auth.php:972
actiontemplate_redirectinc\class-wp-weixin-auth.php:974
actionparse_requestinc\class-wp-weixin-bind.php:20
actionwp_weixin_endpointsinc\class-wp-weixin-bind.php:22
filterquery_varsinc\class-wp-weixin-bind.php:31
actionum_after_account_general_buttoninc\class-wp-weixin-bind.php:35
actionwoocommerce_edit_account_form_endinc\class-wp-weixin-bind.php:37
actionshow_user_profileinc\class-wp-weixin-bind.php:39
actionedit_user_profileinc\class-wp-weixin-bind.php:40
actionwp_footerinc\class-wp-weixin-bind.php:96
actionshutdowninc\class-wp-weixin-bind.php:97
actionwp_print_scriptsinc\class-wp-weixin-bind.php:104
actionwp_print_stylesinc\class-wp-weixin-bind.php:105
actiontemplate_redirectinc\class-wp-weixin-bind.php:108
actionwp_footerinc\class-wp-weixin-bind.php:422
actionshutdowninc\class-wp-weixin-bind.php:423
actionwp_print_scriptsinc\class-wp-weixin-bind.php:429
actionwp_print_stylesinc\class-wp-weixin-bind.php:430
actiontemplate_redirectinc\class-wp-weixin-bind.php:432
actionadmin_head-nav-menus.phpinc\class-wp-weixin-menu.php:17
actionafter_setup_themeinc\class-wp-weixin-menu.php:19
actionwp_update_nav_menuinc\class-wp-weixin-menu.php:21
actionadmin_enqueue_scriptsinc\class-wp-weixin-menu.php:23
actionwpupdate_nav_menu_iteminc\class-wp-weixin-menu.php:27
filterwp_edit_nav_menu_walkerinc\class-wp-weixin-menu.php:30
filterupdate_post_metadatainc\class-wp-weixin-menu.php:32
filterupdate_post_metadatainc\class-wp-weixin-menu.php:355
actionadd_meta_boxesinc\class-wp-weixin-metabox.php:14
actionsave_postinc\class-wp-weixin-metabox.php:15
actionparse_requestinc\class-wp-weixin-responder.php:16
actionwp_weixin_endpointsinc\class-wp-weixin-responder.php:18
actionwp_weixin_responderinc\class-wp-weixin-responder.php:20
actionwp_weixin_responderinc\class-wp-weixin-responder.php:22
actionwp_loadedinc\class-wp-weixin-settings.php:22
actionadmin_enqueue_scriptsinc\class-wp-weixin-settings.php:24
actionadmin_menuinc\class-wp-weixin-settings.php:26
actionadmin_initinc\class-wp-weixin-settings.php:28
actioninitinc\class-wp-weixin-settings.php:30
actionparse_requestinc\class-wp-weixin-settings.php:32
actionupdate_option_wp_weixin_settingsinc\class-wp-weixin-settings.php:36
filterwp_weixin_ms_auth_blog_idinc\class-wp-weixin-settings.php:42
filterwp_weixin_ms_pay_blog_idinc\class-wp-weixin-settings.php:46
actionoption_wp_weixin_settingsinc\class-wp-weixin-settings.php:51
filterpre_update_option_wp_weixin_settingsinc\class-wp-weixin-settings.php:54
actionadmin_noticesinc\class-wp-weixin-wechat-singleton.php:93
actionadmin_noticesinc\class-wp-weixin-wechat-singleton.php:120
actionadmin_noticesinc\class-wp-weixin-wechat-singleton.php:176
actioninitinc\class-wp-weixin.php:38
actionwp_enqueue_scriptsinc\class-wp-weixin.php:40
actionadmin_enqueue_scriptsinc\class-wp-weixin.php:42
actionpre_user_queryinc\class-wp-weixin.php:44
actioninitinc\class-wp-weixin.php:46
actioninitinc\class-wp-weixin.php:48
actionwp_weixin_qr_cleanupinc\class-wp-weixin.php:49
filterget_user_metadatainc\class-wp-weixin.php:52
filterupdate_user_metadatainc\class-wp-weixin.php:54
filterquery_varsinc\class-wp-weixin.php:56
filterextra_plugin_headersinc\class-wp-weixin.php:58
filterwp_doing_ajaxinc\class-wp-weixin.php:60
filterget_avatarinc\class-wp-weixin.php:64
filteruser_profile_picture_descriptioninc\class-wp-weixin.php:66
filtermanage_users_columnsinc\class-wp-weixin.php:68
filtermanage_users_custom_columninc\class-wp-weixin.php:70
filtermanage_users_sortable_columnsinc\class-wp-weixin.php:72
actionum_after_account_general_buttoninc\class-wp-weixin.php:77
actionwoocommerce_edit_account_form_endinc\class-wp-weixin.php:79
actionshow_user_profileinc\class-wp-weixin.php:81
actionedit_user_profileinc\class-wp-weixin.php:82
actionwp_weixin_handle_payment_notificationinc\class-wp-weixin.php:87
filterget_user_metadatainc\class-wp-weixin.php:669
filterupdate_user_metadatainc\class-wp-weixin.php:704
actionplugins_loadedwp-weixin.php:87
Maintenance & Trust

WP Weixin Maintenance & Trust

Maintenance Signals

WordPress version tested6.7.5
Last updatedMar 10, 2025
PHP min version7.0
Downloads19K

Community Trust

Rating100/100
Number of ratings6
Active installs400
Developer Profile

WP Weixin Developer Profile

Alexandre Froger

11 plugins · 8K total installs

71
trust score
Avg Security Score
88/100
Avg Patch Time
110 days
View full developer profile
Detection Fingerprints

How We Detect WP Weixin

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/wp-weixin/assets/css/admin.css/wp-content/plugins/wp-weixin/assets/css/frontend.css/wp-content/plugins/wp-weixin/assets/js/admin.js/wp-content/plugins/wp-weixin/assets/js/frontend.js/wp-content/plugins/wp-weixin/assets/js/qr-code.js
Script Paths
/wp-content/plugins/wp-weixin/assets/js/admin.js/wp-content/plugins/wp-weixin/assets/js/frontend.js/wp-content/plugins/wp-weixin/assets/js/qr-code.js
Version Parameters
wp-weixin/assets/css/admin.css?ver=wp-weixin/assets/css/frontend.css?ver=wp-weixin/assets/js/admin.js?ver=wp-weixin/assets/js/frontend.js?ver=wp-weixin/assets/js/qr-code.js?ver=

HTML / DOM Fingerprints

CSS Classes
wp-weixin-auth-qr-codewp-weixin-auth-link
Data Attributes
data-wechat-auth-urldata-wechat-auth-hash
JS Globals
WPWeixinAuthWPWeixinFrontend
REST Endpoints
/wp-weixin/wechat-auth-validate/wp-weixin/auth-redirect/wp-weixin/wechat-auth-qr/wp-weixin/wechat-auth/wp-weixin/ms-crossdomain/wp-weixin/ms-set-target
FAQ

Frequently Asked Questions about WP Weixin