XO Security Security & Risk Analysis

wordpress.org/plugins/xo-security

XO Security is a plugin to enhance login related security.

30K active installs v3.10.8 PHP 5.6+ WP 4.9+ Updated Dec 6, 2025
brute-forceloginmaintenancesecuritytwo-factor
100
A · Safe
CVEs total1
Unpatched0
Last CVEFeb 7, 2017
Safety Verdict

Is XO Security Safe to Use in 2026?

Generally Safe

Score 100/100

XO Security has a strong security track record. Known vulnerabilities have been patched promptly.

1 known CVELast CVE: Feb 7, 2017Updated 3mo ago
Risk Assessment

The xo-security plugin v3.10.8 exhibits a generally good security posture with a well-defined attack surface and a significant portion of its SQL queries utilizing prepared statements. The absence of critical or high-severity taint flows and a lack of dangerous functions are positive indicators. Furthermore, the plugin appears to be well-maintained, with its single known medium-severity CVE from 2017 being patched and no currently unpatched vulnerabilities. However, there are areas for improvement. The static analysis reveals that only 54% of output is properly escaped, which could indicate potential Cross-Site Scripting (XSS) vulnerabilities if user-supplied data is not consistently sanitized before being displayed. While the total number of outputs is substantial, this percentage suggests a concerning number of improperly escaped outputs that could be exploited. Additionally, the presence of unsanitized paths in taint flows, even without critical severity, warrants attention as it indicates potential insecure handling of file paths that could lead to unintended access or manipulation. The limited number of capability checks (2) and nonce checks (9) in relation to the number of entry points (1 AJAX handler) also raise some concerns, although the AJAX handler is reported as protected. Overall, the plugin has a solid foundation but requires more rigorous output escaping and careful attention to input sanitization to mitigate potential risks.

Key Concerns

  • Low percentage of properly escaped outputs
  • Unsanitized paths in taint flows
Vulnerabilities
1

XO Security Security Vulnerabilities

CVEs by Year

1 CVE in 2017
2017
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2017-18541medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

XO Security < 1.5.3 - Cross-Site Scripting

Feb 7, 2017 Patched in 1.5.3 (2541d)
Code Analysis
Analyzed Mar 16, 2026

XO Security Code Analysis

Dangerous Functions
0
Raw SQL Queries
6
24 prepared
Unescaped Output
113
134 escaped
Nonce Checks
9
Capability Checks
2
File Operations
0
External Requests
0
Bundled Libraries
0

SQL Query Safety

80% prepared30 total queries

Output Escaping

54% escaped247 total outputs
Data Flows
3 unsanitized

Data Flow Analysis

8 flows3 with unsanitized paths
status_dropdown (inc\class-xo-login-log-list-table.php:146)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

XO Security Attack Surface

Entry Points1
Unprotected0

AJAX Handlers 1

authwp_ajax_xo_security_dashboardinc\class-xo-security-admin.php:64
WordPress Hooks 83
actionplugins_loadedinc\class-xo-security-admin.php:49
actionadmin_bar_initinc\class-xo-security-admin.php:56
actionadmin_menuinc\class-xo-security-admin.php:57
filterset-screen-optioninc\class-xo-security-admin.php:58
actionadmin_initinc\class-xo-security-admin.php:59
filterplugin_action_linksinc\class-xo-security-admin.php:60
actionwp_dashboard_setupinc\class-xo-security-admin.php:63
actionshow_user_profileinc\class-xo-security-admin.php:69
actionedit_user_profileinc\class-xo-security-admin.php:70
actionuser_profile_update_errorsinc\class-xo-security-admin.php:71
actionadmin_initinc\class-xo-security-admin.php:76
actionadmin_initinc\class-xo-security-admin.php:77
actionadmin_enqueue_scriptsinc\class-xo-security-admin.php:142
filterauthor_rewrite_rulesinc\class-xo-security-admin.php:1292
actionplugins_loadedinc\class-xo-security-maintenance-mode.php:31
actionwp_enqueue_scriptsinc\class-xo-security-maintenance-mode.php:40
actionadmin_enqueue_scriptsinc\class-xo-security-maintenance-mode.php:41
actionadmin_bar_menuinc\class-xo-security-maintenance-mode.php:42
actionwp_loadedinc\class-xo-security-maintenance-mode.php:43
actionplugins_loadedinc\class-xo-security-two-factor.php:35
actionadmin_enqueue_scriptsinc\class-xo-security-two-factor.php:44
actionshow_user_profileinc\class-xo-security-two-factor.php:45
actionedit_user_profileinc\class-xo-security-two-factor.php:46
actionuser_profile_update_errorsinc\class-xo-security-two-factor.php:47
actionwp_logininc\class-xo-security-two-factor.php:48
actionlogin_footerinc\class-xo-security-two-factor.php:269
action_core_updated_successfullyinc\class-xo-security.php:75
actionplugins_loadedinc\class-xo-security.php:88
filterauthenticateinc\class-xo-security.php:275
actionwp_logininc\class-xo-security.php:276
actionxmlrpc_callinc\class-xo-security.php:277
filterxmlrpc_login_errorinc\class-xo-security.php:278
actionlogin_initinc\class-xo-security.php:279
filterlogin_errorsinc\class-xo-security.php:280
filtershake_error_codesinc\class-xo-security.php:281
filtersite_urlinc\class-xo-security.php:284
filternetwork_site_urlinc\class-xo-security.php:285
filterwp_redirectinc\class-xo-security.php:286
filtertemplate_redirectinc\class-xo-security.php:287
filterauthor_rewrite_rulesinc\class-xo-security.php:291
actioninitinc\class-xo-security.php:292
filterwp_sitemaps_add_providerinc\class-xo-security.php:293
filtercomment_classinc\class-xo-security.php:297
filteroembed_response_datainc\class-xo-security.php:301
filterxmlrpc_enabledinc\class-xo-security.php:305
filterxmlrpc_methodsinc\class-xo-security.php:309
filterwp_headersinc\class-xo-security.php:310
filterrest_endpointsinc\class-xo-security.php:315
filterrest_url_prefixinc\class-xo-security.php:325
filterlogin_forminc\class-xo-security.php:339
filterwp_authenticate_userinc\class-xo-security.php:340
filtershake_error_codesinc\class-xo-security.php:341
actionwoocommerce_login_forminc\class-xo-security.php:343
actioncomment_form_after_fieldsinc\class-xo-security.php:348
actioncomment_form_logged_in_afterinc\class-xo-security.php:349
actioncomment_forminc\class-xo-security.php:350
filterpreprocess_commentinc\class-xo-security.php:351
actioncomment_form_after_fieldsinc\class-xo-security.php:357
actioncomment_form_logged_in_afterinc\class-xo-security.php:358
actioncomment_forminc\class-xo-security.php:359
filterpreprocess_commentinc\class-xo-security.php:360
filtercomment_form_field_commentinc\class-xo-security.php:368
filterpreprocess_commentinc\class-xo-security.php:369
filterpre_comment_approvedinc\class-xo-security.php:370
filterlogin_form_defaultsinc\class-xo-security.php:376
filtergettextinc\class-xo-security.php:377
filterauthenticateinc\class-xo-security.php:379
filtergettextinc\class-xo-security.php:380
filterlost_password_html_linkinc\class-xo-security.php:386
filtergettextinc\class-xo-security.php:388
filterlogin_site_html_linkinc\class-xo-security.php:394
filtergettext_with_contextinc\class-xo-security.php:396
filterstyle_loader_srcinc\class-xo-security.php:404
filterscript_loader_srcinc\class-xo-security.php:405
actioninitinc\class-xo-security.php:409
actioninitinc\class-xo-security.php:413
filtercron_schedulesinc\class-xo-security.php:416
actionxo_security_optimize_tableinc\class-xo-security.php:417
actioninitinc\class-xo-security.php:418
filterjson_enabledinc\class-xo-security.php:524
filterjson_jsonp_enabledinc\class-xo-security.php:525
filterrest_enabledinc\class-xo-security.php:528
filterrest_jsonp_enabledinc\class-xo-security.php:529

Scheduled Events 1

xo_security_optimize_table
Maintenance & Trust

XO Security Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedDec 6, 2025
PHP min version5.6
Downloads352K

Community Trust

Rating100/100
Number of ratings11
Active installs30K
Developer Profile

XO Security Developer Profile

ishitaka

5 plugins · 62K total installs

75
trust score
Avg Security Score
94/100
Avg Patch Time
2541 days
View full developer profile
Detection Fingerprints

How We Detect XO Security

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/xo-security/css/admin.css/wp-content/plugins/xo-security/css/admin.min.css/wp-content/plugins/xo-security/js/admin.js/wp-content/plugins/xo-security/js/admin.min.js
Script Paths
/wp-content/plugins/xo-security/js/admin.js/wp-content/plugins/xo-security/js/admin.min.js
Version Parameters
xo-security/css/admin.css?ver=xo-security/js/admin.js?ver=

HTML / DOM Fingerprints

CSS Classes
xo-security-login-log-table
Data Attributes
data-site_urldata-nonce
JS Globals
xoSecurityAdminOptions
FAQ

Frequently Asked Questions about XO Security