All In One Login — WP Admin Login Page Security and Customization with Google reCAPTCHA, Social Login, Limit Login Attempt, 2FA, and more. Security & Risk Analysis

wordpress.org/plugins/change-wp-admin-login

Do you want to secure and customize the WordPress login page? Download the All in One Login plugin for login page security and customization.

70K active installs v2.1.1 PHP 7.4+ WP 4.6+ Updated Jan 22, 2026
custom-loginloginlogin-urlwp-loginwp-admin
96
A · Safe
CVEs total3
Unpatched0
Last CVEOct 9, 2025
Safety Verdict

Is All In One Login — WP Admin Login Page Security and Customization with Google reCAPTCHA, Social Login, Limit Login Attempt, 2FA, and more. Safe to Use in 2026?

Generally Safe

Score 96/100

All In One Login — WP Admin Login Page Security and Customization with Google reCAPTCHA, Social Login, Limit Login Attempt, 2FA, and more. has a strong security track record. Known vulnerabilities have been patched promptly.

3 known CVEsLast CVE: Oct 9, 2025Updated 2mo ago
Risk Assessment

The "change-wp-admin-login" plugin, version 2.1.1, exhibits a generally strong security posture based on static analysis. A significant positive aspect is the complete absence of unprotected entry points across its REST API routes and AJAX handlers. Furthermore, all SQL queries are secured using prepared statements, and a high percentage of output is properly escaped, indicating good development practices in preventing common web vulnerabilities. The plugin also demonstrates diligent use of nonces and capability checks. However, the presence of two external HTTP requests warrants careful review to ensure these connections are not exploited for data exfiltration or other malicious purposes. The plugin also bundles Freemius and DataTables, which should be monitored for their own security vulnerabilities.

Despite the current static analysis showing no critical or high severity issues, the plugin's vulnerability history is a significant concern. With three previously discovered medium severity vulnerabilities, all of which are now patched, it indicates a pattern of weaknesses that have required remediation. The common vulnerability types of "Protection Mechanism Failure" and "Incorrect Authorization" suggest that the plugin's core security features have been susceptible to bypass or misconfiguration in the past. While the current version has no unpatched vulnerabilities, this historical pattern necessitates ongoing vigilance and a proactive approach to security updates, as past issues can sometimes resurface or be exploited in new ways.

Key Concerns

  • Bundled library: Freemius v1.0
  • Bundled library: DataTables
  • External HTTP requests present
  • History of 3 medium severity CVEs
Vulnerabilities
3

All In One Login — WP Admin Login Page Security and Customization with Google reCAPTCHA, Social Login, Limit Login Attempt, 2FA, and more. Security Vulnerabilities

CVEs by Year

1 CVE in 2022
2022
1 CVE in 2023
2023
1 CVE in 2025
2025
Patched Has unpatched

Severity Breakdown

Medium
3

3 total CVEs

CVE-2025-58595medium · 5.3Protection Mechanism Failure

WordPress All In One Login Plugin <= 2.0.8 - IP Sooofing to Protection Mechanism Bypass

Oct 9, 2025 Patched in 2.0.9 (7d)
CVE-2023-3604medium · 5.3Protection Mechanism Failure

Change WP Admin Login <= 1.1.3 - Protection Mechanism Failure to Login Page Disclosure

Jul 27, 2023 Patched in 1.1.4 (180d)
CVE-2022-1589medium · 5.4Incorrect Authorization

Change WP Admin Login <= 1.0.9 - Missing Authorization Checks

May 9, 2022 Patched in 1.1.0 (624d)
Code Analysis
Analyzed Mar 16, 2026

All In One Login — WP Admin Login Page Security and Customization with Google reCAPTCHA, Social Login, Limit Login Attempt, 2FA, and more. Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
20 prepared
Unescaped Output
8
102 escaped
Nonce Checks
10
Capability Checks
5
File Operations
0
External Requests
2
Bundled Libraries
2

Bundled Libraries

Freemius1.0DataTables

SQL Query Safety

100% prepared20 total queries

Output Escaping

93% escaped110 total outputs
Data Flows
All sanitized

Data Flow Analysis

3 flows
admin_init (includes\change-wp-admin-login\class-change-wp-admin-login.php:213)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

All In One Login — WP Admin Login Page Security and Customization with Google reCAPTCHA, Social Login, Limit Login Attempt, 2FA, and more. Attack Surface

Entry Points25
Unprotected0

REST API Routes 25

GET/wp-json/aio-login/dashboard/get-settingsincludes\admin\class-admin.php:326
GET/wp-json/aio-login/dashboard/get-countsincludes\admin\class-admin.php:336
POST/wp-json/aio-login/dashboard/update/limit-login-attemptsincludes\admin\class-admin.php:346
POST/wp-json/aio-login/dashboard/update/two-factor-authenticationincludes\admin\class-admin.php:356
POST/wp-json/aio-login/dashboard/update/block-ip-addressincludes\admin\class-admin.php:366
GET/wp-json/aio-login/dashboard/logs/lockoutsincludes\admin\class-admin.php:376
GET/wp-json/aio-login/dashboard/logs/failed-loginsincludes\admin\class-admin.php:386
GET/wp-json/aio-login/dashboard/user-enumeration-settingsincludes\admin\class-admin.php:397
POST/wp-json/aio-login/dashboard/update/user-enumeration-settingsincludes\admin\class-admin.php:407
GET/wp-json/aio-login/dashboard/activity-log-settingsincludes\admin\class-admin.php:418
POST/wp-json/aio-login/dashboard/update/activity-log-settingsincludes\admin\class-admin.php:428
GET/wp-json/aio-login/change-wp-admin-login/get-settingsincludes\change-wp-admin-login\class-change-wp-admin-login.php:685
POST/wp-json/aio-login/change-wp-admin-login/save-settingsincludes\change-wp-admin-login\class-change-wp-admin-login.php:695
GET/wp-json/aio-login/grecaptcha/get-settingsincludes\google-recaptcha\class-google-recaptcha.php:232
POST/wp-json/aio-login/grecaptcha/save-settingsincludes\google-recaptcha\class-google-recaptcha.php:242
GET/wp-json/aio-login/limit-login-attempts/get-settingsincludes\login-controller\class-login-controller.php:248
POST/wp-json/aio-login/limit-login-attempts/save-settingsincludes\login-controller\class-login-controller.php:258
GET/wp-json/aio-login/logs/failed-loginincludes\login-controller\class-login-controller.php:268
GET/wp-json/aio-login/logs/lockoutsincludes\login-controller\class-login-controller.php:278
GET/wp-json/aio-login/custom-css/get-settingsincludes\login-customization\class-login-customization.php:31
POST/wp-json/aio-login/custom-csssave-custom-css-settingsincludes\login-customization\class-login-customization.php:40
GET/wp-json/aio-login/background/get-settingsincludes\login-customization\class-login-customization.php:50
POST/wp-json/aio-login/background/save-settingsincludes\login-customization\class-login-customization.php:59
GET/wp-json/aio-login/logo/get-settingsincludes\login-customization\class-login-customization.php:69
POST/wp-json/aio-login/logo/save-settingsincludes\login-customization\class-login-customization.php:78
WordPress Hooks 64
actioninitincludes\admin\class-admin.php:34
actionadmin_enqueue_scriptsincludes\admin\class-admin.php:35
actionadmin_enqueue_scriptsincludes\admin\class-admin.php:36
actionadmin_menuincludes\admin\class-admin.php:37
actionrest_api_initincludes\admin\class-admin.php:39
actionaio_login__footerincludes\admin\settings\dashboard.php:173
actionadmin_noticesincludes\change-wp-admin-login\class-change-wp-admin-login.php:122
actionnetwork_admin_noticesincludes\change-wp-admin-login\class-change-wp-admin-login.php:123
actionadmin_initincludes\change-wp-admin-login\class-change-wp-admin-login.php:128
actionadmin_noticesincludes\change-wp-admin-login\class-change-wp-admin-login.php:129
actionnetwork_admin_noticesincludes\change-wp-admin-login\class-change-wp-admin-login.php:130
actionwpmu_optionsincludes\change-wp-admin-login\class-change-wp-admin-login.php:138
actionupdate_wpmu_optionsincludes\change-wp-admin-login\class-change-wp-admin-login.php:139
actionplugins_loadedincludes\change-wp-admin-login\class-change-wp-admin-login.php:144
actionwp_loadedincludes\change-wp-admin-login\class-change-wp-admin-login.php:145
filtersite_urlincludes\change-wp-admin-login\class-change-wp-admin-login.php:146
filternetwork_site_urlincludes\change-wp-admin-login\class-change-wp-admin-login.php:147
filterwp_redirectincludes\change-wp-admin-login\class-change-wp-admin-login.php:148
filtersite_option_welcome_emailincludes\change-wp-admin-login\class-change-wp-admin-login.php:149
actionrest_api_initincludes\change-wp-admin-login\class-change-wp-admin-login.php:153
actioninitincludes\class-aio-login.php:94
actioninitincludes\class-aio-login.php:95
actionwp_initialize_siteincludes\class-aio-login.php:98
filteraio_login__wp_authenticate_userincludes\google-recaptcha\class-google-recaptcha.php:89
actionlogin_enqueue_scriptsincludes\google-recaptcha\class-google-recaptcha.php:90
actionlogin_formincludes\google-recaptcha\class-google-recaptcha.php:91
actionrest_api_initincludes\google-recaptcha\class-google-recaptcha.php:94
actioninitincludes\login-controller\class-login-controller.php:67
actionlogin_enqueue_scriptsincludes\login-controller\class-login-controller.php:68
filterwp_authenticate_userincludes\login-controller\class-login-controller.php:69
actionwp_login_failedincludes\login-controller\class-login-controller.php:70
filterlogin_errorsincludes\login-controller\class-login-controller.php:71
actionlogin_formincludes\login-controller\class-login-controller.php:72
actionrest_api_initincludes\login-controller\class-login-controller.php:74
actionlogin_enqueue_scriptsincludes\login-customization\class-login-customization-output.php:92
filterlogin_headerurlincludes\login-customization\class-login-customization-output.php:93
actionrest_api_initincludes\login-customization\class-login-customization.php:24
actiontemplate_redirectincludes\user-enumeration-protection\class-user-enumeration-protection.php:64
filterwp_sitemaps_users_query_argsincludes\user-enumeration-protection\class-user-enumeration-protection.php:67
actiontemplate_redirectincludes\user-enumeration-protection\class-user-enumeration-protection.php:68
filterwp_sitemaps_providersincludes\user-enumeration-protection\class-user-enumeration-protection.php:69
filterwp_sitemaps_index_entryincludes\user-enumeration-protection\class-user-enumeration-protection.php:70
filteroembed_response_dataincludes\user-enumeration-protection\class-user-enumeration-protection.php:74
filterrest_authentication_errorsincludes\user-enumeration-protection\class-user-enumeration-protection.php:79
filterrest_user_collection_paramsincludes\user-enumeration-protection\class-user-enumeration-protection.php:80
filterlogin_errorsincludes\user-enumeration-protection\class-user-enumeration-protection.php:85
filterregistration_errorsincludes\user-enumeration-protection\class-user-enumeration-protection.php:86
filterget_comment_authorincludes\user-enumeration-protection\class-user-enumeration-protection.php:91
filterget_comment_author_urlincludes\user-enumeration-protection\class-user-enumeration-protection.php:92
filterthe_authorincludes\user-enumeration-protection\class-user-enumeration-protection.php:97
filterauthor_linkincludes\user-enumeration-protection\class-user-enumeration-protection.php:98
filterget_the_authorincludes\user-enumeration-protection\class-user-enumeration-protection.php:99
filterget_the_author_display_nameincludes\user-enumeration-protection\class-user-enumeration-protection.php:100
filterthe_author_posts_linkincludes\user-enumeration-protection\class-user-enumeration-protection.php:101
filterthe_contentincludes\user-enumeration-protection\class-user-enumeration-protection.php:102
actionwp_login_failedincludes\user-enumeration-protection\class-user-enumeration-protection.php:107
actionuser_registerincludes\user-enumeration-protection\class-user-enumeration-protection.php:108
filterthe_authorincludes\user-enumeration-protection\class-user-enumeration-protection.php:212
filterget_the_author_display_nameincludes\user-enumeration-protection\class-user-enumeration-protection.php:213
filterget_the_authorincludes\user-enumeration-protection\class-user-enumeration-protection.php:214
filterget_avatarincludes\user-enumeration-protection\class-user-enumeration-protection.php:216
filterauthor_feed_linkincludes\user-enumeration-protection\class-user-enumeration-protection.php:217
actionwp_headincludes\user-enumeration-protection\class-user-enumeration-protection.php:220
actionwp_headincludes\user-enumeration-protection\class-user-enumeration-protection.php:223
Maintenance & Trust

All In One Login — WP Admin Login Page Security and Customization with Google reCAPTCHA, Social Login, Limit Login Attempt, 2FA, and more. Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedJan 22, 2026
PHP min version7.4
Downloads1.2M

Community Trust

Rating70/100
Number of ratings34
Active installs70K
Developer Profile

All In One Login — WP Admin Login Page Security and Customization with Google reCAPTCHA, Social Login, Limit Login Attempt, 2FA, and more. Developer Profile

Saad Iqbal

84 plugins · 1.4M total installs

76
trust score
Avg Security Score
96/100
Avg Patch Time
287 days
View full developer profile
Detection Fingerprints

How We Detect All In One Login — WP Admin Login Page Security and Customization with Google reCAPTCHA, Social Login, Limit Login Attempt, 2FA, and more.

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/change-wp-admin-login/assets/css/app.css/wp-content/plugins/change-wp-admin-login/assets/js/app.js
Script Paths
/wp-content/plugins/change-wp-admin-login/assets/js/app.js
Version Parameters
change-wp-admin-login/assets/css/app.css?ver=change-wp-admin-login/assets/js/app.js?ver=

HTML / DOM Fingerprints

CSS Classes
aio-login__appaio-login__submenu-handler-styles
JS Globals
aio_login__app_object
REST Endpoints
/wp-json/aio-login/
FAQ

Frequently Asked Questions about All In One Login — WP Admin Login Page Security and Customization with Google reCAPTCHA, Social Login, Limit Login Attempt, 2FA, and more.