Wordfence Security – Firewall & Malware Scan - Version 7.4.11

Version Description

  • August 27, 2020 =

  • Improvement: Added diagnostic debug button to clear Wordfence Central connection data from the database.

  • Improvement: Added help documentation links to modified plugin/theme file scan results.

  • Fix: Prevent file system scan from following symlinks to root.

  • Fix: Cleared pending plugin/theme update scan results and notification when a plugin/theme is auto-updated.

  • Fix: Added check for when site is disconnected on Central's end, but not in the plugin.

Download this release

Release Info

Developer wfmatt
Plugin Icon 128x128 Wordfence Security – Firewall & Malware Scan
Version 7.4.11
Comparing to
See all releases

Code changes from version 7.4.10 to 7.4.11

Files changed (64) hide show
  1. css/{activity-report-widget.1596638737.css → activity-report-widget.1598542714.css} +0 -0
  2. css/{diff.1596638737.css → diff.1598542714.css} +0 -0
  3. css/{dt_table.1596638737.css → dt_table.1598542714.css} +0 -0
  4. css/{fullLog.1596638737.css → fullLog.1598542714.css} +0 -0
  5. css/{iptraf.1596638737.css → iptraf.1598542714.css} +0 -0
  6. css/{jquery-ui-timepicker-addon.1596638737.css → jquery-ui-timepicker-addon.1598542714.css} +0 -0
  7. css/{jquery-ui.min.1596638737.css → jquery-ui.min.1598542714.css} +0 -0
  8. css/{jquery-ui.structure.min.1596638737.css → jquery-ui.structure.min.1598542714.css} +0 -0
  9. css/{jquery-ui.theme.min.1596638737.css → jquery-ui.theme.min.1598542714.css} +0 -0
  10. css/{main.1596638737.css → main.1598542714.css} +0 -0
  11. css/{phpinfo.1596638737.css → phpinfo.1598542714.css} +0 -0
  12. css/{wf-adminbar.1596638737.css → wf-adminbar.1598542714.css} +0 -0
  13. css/{wf-colorbox.1596638737.css → wf-colorbox.1598542714.css} +0 -0
  14. css/{wf-font-awesome.1596638737.css → wf-font-awesome.1598542714.css} +0 -0
  15. css/{wf-global.1596638737.css → wf-global.1598542714.css} +0 -0
  16. css/{wf-ionicons.1596638737.css → wf-ionicons.1598542714.css} +0 -0
  17. css/{wf-onboarding.1596638737.css → wf-onboarding.1598542714.css} +0 -0
  18. css/{wf-roboto-font.1596638737.css → wf-roboto-font.1598542714.css} +0 -0
  19. css/{wfselect2.min.1596638737.css → wfselect2.min.1598542714.css} +0 -0
  20. css/{wordfenceBox.1596638737.css → wordfenceBox.1598542714.css} +0 -0
  21. js/{Chart.bundle.min.1596638737.js → Chart.bundle.min.1598542714.js} +0 -0
  22. js/{admin.1596638737.js → admin.1598542714.js} +0 -0
  23. js/{admin.ajaxWatcher.1596638737.js → admin.ajaxWatcher.1598542714.js} +0 -0
  24. js/{admin.liveTraffic.1596638737.js → admin.liveTraffic.1598542714.js} +0 -0
  25. js/{date.1596638737.js → date.1598542714.js} +0 -0
  26. js/{jquery-ui-timepicker-addon.1596638737.js → jquery-ui-timepicker-addon.1598542714.js} +0 -0
  27. js/{jquery.colorbox-min.1596638737.js → jquery.colorbox-min.1598542714.js} +0 -0
  28. js/{jquery.colorbox.1596638737.js → jquery.colorbox.1598542714.js} +0 -0
  29. js/{jquery.dataTables.min.1596638737.js → jquery.dataTables.min.1598542714.js} +0 -0
  30. js/{jquery.qrcode.min.1596638737.js → jquery.qrcode.min.1598542714.js} +0 -0
  31. js/{jquery.tmpl.min.1596638737.js → jquery.tmpl.min.1598542714.js} +0 -0
  32. js/{jquery.tools.min.1596638737.js → jquery.tools.min.1598542714.js} +0 -0
  33. js/{knockout-3.3.0.1596638737.js → knockout-3.3.0.1598542714.js} +0 -0
  34. js/{wfdashboard.1596638737.js → wfdashboard.1598542714.js} +0 -0
  35. js/{wfdropdown.1596638737.js → wfdropdown.1598542714.js} +0 -0
  36. js/{wfglobal.1596638737.js → wfglobal.1598542714.js} +0 -0
  37. js/{wfpopover.1596638737.js → wfpopover.1598542714.js} +0 -0
  38. js/{wfselect2.min.1596638737.js → wfselect2.min.1598542714.js} +0 -0
  39. lib/menu_tools_diagnostic.php +6 -0
  40. lib/wfCentralAPI.php +18 -0
  41. lib/wfSupportController.php +6 -0
  42. lib/wordfenceClass.php +2 -1
  43. lib/wordfenceHash.php +5 -2
  44. modules/login-security/css/{admin-global.1596638737.css → admin-global.1598542714.css} +0 -0
  45. modules/login-security/css/{admin.1596638737.css → admin.1598542714.css} +0 -0
  46. modules/login-security/css/{colorbox.1596638737.css → colorbox.1598542714.css} +0 -0
  47. modules/login-security/css/{font-awesome.1596638737.css → font-awesome.1598542714.css} +0 -0
  48. modules/login-security/css/{ionicons.1596638737.css → ionicons.1598542714.css} +0 -0
  49. modules/login-security/css/{jquery-ui-timepicker-addon.1596638737.css → jquery-ui-timepicker-addon.1598542714.css} +0 -0
  50. modules/login-security/css/{jquery-ui.min.1596638737.css → jquery-ui.min.1598542714.css} +0 -0
  51. modules/login-security/css/{jquery-ui.structure.min.1596638737.css → jquery-ui.structure.min.1598542714.css} +0 -0
  52. modules/login-security/css/{jquery-ui.theme.min.1596638737.css → jquery-ui.theme.min.1598542714.css} +0 -0
  53. modules/login-security/css/{login.1596638737.css → login.1598542714.css} +0 -0
  54. modules/login-security/js/{admin-global.1596638737.js → admin-global.1598542714.js} +0 -0
  55. modules/login-security/js/{admin.1596638737.js → admin.1598542714.js} +0 -0
  56. modules/login-security/js/{jquery-ui-timepicker-addon.1596638737.js → jquery-ui-timepicker-addon.1598542714.js} +0 -0
  57. modules/login-security/js/{jquery.colorbox.1596638737.js → jquery.colorbox.1598542714.js} +0 -0
  58. modules/login-security/js/{jquery.colorbox.min.1596638737.js → jquery.colorbox.min.1598542714.js} +0 -0
  59. modules/login-security/js/{jquery.qrcode.min.1596638737.js → jquery.qrcode.min.1598542714.js} +0 -0
  60. modules/login-security/js/{jquery.tmpl.min.1596638737.js → jquery.tmpl.min.1598542714.js} +0 -0
  61. modules/login-security/js/{login.1596638737.js → login.1598542714.js} +0 -0
  62. modules/login-security/wordfence-login-security.php +1 -1
  63. readme.txt +9 -1
  64. wordfence.php +3 -3
css/{activity-report-widget.1596638737.css → activity-report-widget.1598542714.css} RENAMED
File without changes
css/{diff.1596638737.css → diff.1598542714.css} RENAMED
File without changes
css/{dt_table.1596638737.css → dt_table.1598542714.css} RENAMED
File without changes
css/{fullLog.1596638737.css → fullLog.1598542714.css} RENAMED
File without changes
css/{iptraf.1596638737.css → iptraf.1598542714.css} RENAMED
File without changes
css/{jquery-ui-timepicker-addon.1596638737.css → jquery-ui-timepicker-addon.1598542714.css} RENAMED
File without changes
css/{jquery-ui.min.1596638737.css → jquery-ui.min.1598542714.css} RENAMED
File without changes
css/{jquery-ui.structure.min.1596638737.css → jquery-ui.structure.min.1598542714.css} RENAMED
File without changes
css/{jquery-ui.theme.min.1596638737.css → jquery-ui.theme.min.1598542714.css} RENAMED
File without changes
css/{main.1596638737.css → main.1598542714.css} RENAMED
File without changes
css/{phpinfo.1596638737.css → phpinfo.1598542714.css} RENAMED
File without changes
css/{wf-adminbar.1596638737.css → wf-adminbar.1598542714.css} RENAMED
File without changes
css/{wf-colorbox.1596638737.css → wf-colorbox.1598542714.css} RENAMED
File without changes
css/{wf-font-awesome.1596638737.css → wf-font-awesome.1598542714.css} RENAMED
File without changes
css/{wf-global.1596638737.css → wf-global.1598542714.css} RENAMED
File without changes
css/{wf-ionicons.1596638737.css → wf-ionicons.1598542714.css} RENAMED
File without changes
css/{wf-onboarding.1596638737.css → wf-onboarding.1598542714.css} RENAMED
File without changes
css/{wf-roboto-font.1596638737.css → wf-roboto-font.1598542714.css} RENAMED
File without changes
css/{wfselect2.min.1596638737.css → wfselect2.min.1598542714.css} RENAMED
File without changes
css/{wordfenceBox.1596638737.css → wordfenceBox.1598542714.css} RENAMED
File without changes
js/{Chart.bundle.min.1596638737.js → Chart.bundle.min.1598542714.js} RENAMED
File without changes
js/{admin.1596638737.js → admin.1598542714.js} RENAMED
File without changes
js/{admin.ajaxWatcher.1596638737.js → admin.ajaxWatcher.1598542714.js} RENAMED
File without changes
js/{admin.liveTraffic.1596638737.js → admin.liveTraffic.1598542714.js} RENAMED
File without changes
js/{date.1596638737.js → date.1598542714.js} RENAMED
File without changes
js/{jquery-ui-timepicker-addon.1596638737.js → jquery-ui-timepicker-addon.1598542714.js} RENAMED
File without changes
js/{jquery.colorbox-min.1596638737.js → jquery.colorbox-min.1598542714.js} RENAMED
File without changes
js/{jquery.colorbox.1596638737.js → jquery.colorbox.1598542714.js} RENAMED
File without changes
js/{jquery.dataTables.min.1596638737.js → jquery.dataTables.min.1598542714.js} RENAMED
File without changes
js/{jquery.qrcode.min.1596638737.js → jquery.qrcode.min.1598542714.js} RENAMED
File without changes
js/{jquery.tmpl.min.1596638737.js → jquery.tmpl.min.1598542714.js} RENAMED
File without changes
js/{jquery.tools.min.1596638737.js → jquery.tools.min.1598542714.js} RENAMED
File without changes
js/{knockout-3.3.0.1596638737.js → knockout-3.3.0.1598542714.js} RENAMED
File without changes
js/{wfdashboard.1596638737.js → wfdashboard.1598542714.js} RENAMED
File without changes
js/{wfdropdown.1596638737.js → wfdropdown.1598542714.js} RENAMED
File without changes
js/{wfglobal.1596638737.js → wfglobal.1598542714.js} RENAMED
File without changes
js/{wfpopover.1596638737.js → wfpopover.1598542714.js} RENAMED
File without changes
js/{wfselect2.min.1596638737.js → wfselect2.min.1598542714.js} RENAMED
File without changes
lib/menu_tools_diagnostic.php CHANGED
@@ -844,6 +844,12 @@ if (!isset($sendingDiagnosticEmail)) {
844
  <input class="wf-btn wf-btn-default wf-btn-sm" type="button" value="<?php esc_attr_e('Send Test Activity Report', 'wordfence'); ?>" onclick="WFAD.ajax('wordfence_email_summary_email_address_debug', {email: jQuery('#email_summary_email_address_debug').val()});"/>
845
  </span>
846
  </li>
 
 
 
 
 
 
847
  </ul>
848
 
849
  </div>
844
  <input class="wf-btn wf-btn-default wf-btn-sm" type="button" value="<?php esc_attr_e('Send Test Activity Report', 'wordfence'); ?>" onclick="WFAD.ajax('wordfence_email_summary_email_address_debug', {email: jQuery('#email_summary_email_address_debug').val()});"/>
845
  </span>
846
  </li>
847
+ <li>
848
+ <span>
849
+ <?php _e('Clear all Wordfence Central connection data', 'wordfence'); ?> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_DIAGNOSTICS_REMOVE_CENTRAL_DATA); ?>" target="_blank" rel="noopener noreferrer" class="wfhelp wf-inline-help"></a>
850
+ <input class="wf-btn wf-btn-default wf-btn-sm" type="button" value="<?php esc_attr_e('Clear Connection Data', 'wordfence'); ?>" onclick="WFAD.ajax('wordfence_wfcentral_disconnect', {}, function() { WFAD.colorboxModal((self.isSmallScreen ? '300px' : '400px'), 'Successfully romved data', 'All associated Wordfence Central data has been removed from the database.'); });"/>
851
+ </span>
852
+ </li>
853
  </ul>
854
 
855
  </div>
lib/wfCentralAPI.php CHANGED
@@ -59,6 +59,24 @@ class wfCentralAPIRequest {
59
 
60
  $http = _wp_http_get_object();
61
  $response = $http->request(WORDFENCE_CENTRAL_API_URL_SEC . $this->getEndpoint(), $args);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  return new wfCentralAPIResponse($response);
63
  }
64
 
59
 
60
  $http = _wp_http_get_object();
61
  $response = $http->request(WORDFENCE_CENTRAL_API_URL_SEC . $this->getEndpoint(), $args);
62
+
63
+ if (!is_wp_error($response)) {
64
+ $body = wp_remote_retrieve_body($response);
65
+ $statusCode = wp_remote_retrieve_response_code($response);
66
+
67
+ // Check if site has been disconnected on Central's end, but the plugin is still trying to connect.
68
+ if ($statusCode === 404 && strpos($body, 'Site has been disconnected') !== false) {
69
+ // Increment attempt count.
70
+ $centralDisconnectCount = get_site_transient('wordfenceCentralDisconnectCount');
71
+ set_site_transient('wordfenceCentralDisconnectCount', ++$centralDisconnectCount, 86400);
72
+
73
+ // Once threshold is hit, disconnect Central.
74
+ if ($centralDisconnectCount > 3) {
75
+ wfRESTConfigController::disconnectConfig();
76
+ }
77
+ }
78
+ }
79
+
80
  return new wfCentralAPIResponse($response);
81
  }
82
 
lib/wfSupportController.php CHANGED
@@ -148,6 +148,8 @@ class wfSupportController {
148
  const ITEM_SCAN_RESULT_UNKNOWN_FILE_CORE = 'scan-result-unknown-file-in-wordpress-core';
149
  const ITEM_SCAN_RESULT_SKIPPED_PATHS = 'scan-result-skipped-paths';
150
  const ITEM_SCAN_RESULT_REPAIR_MODIFIED_FILES = 'scan-result-repair-modified-files';
 
 
151
 
152
  const ITEM_TOOLS_TWO_FACTOR = 'tools-two-factor';
153
  const ITEM_TOOLS_LIVE_TRAFFIC = 'tools-live-traffic';
@@ -159,6 +161,7 @@ class wfSupportController {
159
  const ITEM_DIAGNOSTICS_TEST_MEMORY = 'diagnostics-test-memory';
160
  const ITEM_DIAGNOSTICS_TEST_EMAIL = 'diagnostics-test-email';
161
  const ITEM_DIAGNOSTICS_TEST_ACTIVITY_REPORT = 'diagnostics-test-activity-report';
 
162
  const ITEM_DIAGNOSTICS_OPTION_DEBUGGING_MODE = 'diagnostics-option-debugging-mode';
163
  const ITEM_DIAGNOSTICS_OPTION_REMOTE_SCANS = 'diagnostics-option-remote-scans';
164
  const ITEM_DIAGNOSTICS_OPTION_SSL_VERIFICATION = 'diagnostics-option-ssl-verification';
@@ -326,6 +329,8 @@ class wfSupportController {
326
  case self::ITEM_SCAN_RESULT_UNKNOWN_FILE_CORE:
327
  case self::ITEM_SCAN_RESULT_SKIPPED_PATHS:
328
  case self::ITEM_SCAN_RESULT_REPAIR_MODIFIED_FILES:
 
 
329
 
330
  case self::ITEM_TOOLS_TWO_FACTOR:
331
  case self::ITEM_TOOLS_LIVE_TRAFFIC:
@@ -337,6 +342,7 @@ class wfSupportController {
337
  case self::ITEM_DIAGNOSTICS_TEST_MEMORY:
338
  case self::ITEM_DIAGNOSTICS_TEST_EMAIL:
339
  case self::ITEM_DIAGNOSTICS_TEST_ACTIVITY_REPORT:
 
340
  case self::ITEM_DIAGNOSTICS_OPTION_DEBUGGING_MODE:
341
  case self::ITEM_DIAGNOSTICS_OPTION_REMOTE_SCANS:
342
  case self::ITEM_DIAGNOSTICS_OPTION_SSL_VERIFICATION:
148
  const ITEM_SCAN_RESULT_UNKNOWN_FILE_CORE = 'scan-result-unknown-file-in-wordpress-core';
149
  const ITEM_SCAN_RESULT_SKIPPED_PATHS = 'scan-result-skipped-paths';
150
  const ITEM_SCAN_RESULT_REPAIR_MODIFIED_FILES = 'scan-result-repair-modified-files';
151
+ const ITEM_SCAN_RESULT_MODIFIED_PLUGIN = 'scan-result-modified-plugin';
152
+ const ITEM_SCAN_RESULT_MODIFIED_THEME = 'scan-result-modified-theme';
153
 
154
  const ITEM_TOOLS_TWO_FACTOR = 'tools-two-factor';
155
  const ITEM_TOOLS_LIVE_TRAFFIC = 'tools-live-traffic';
161
  const ITEM_DIAGNOSTICS_TEST_MEMORY = 'diagnostics-test-memory';
162
  const ITEM_DIAGNOSTICS_TEST_EMAIL = 'diagnostics-test-email';
163
  const ITEM_DIAGNOSTICS_TEST_ACTIVITY_REPORT = 'diagnostics-test-activity-report';
164
+ const ITEM_DIAGNOSTICS_REMOVE_CENTRAL_DATA = 'diagnostics-remove-central-data';
165
  const ITEM_DIAGNOSTICS_OPTION_DEBUGGING_MODE = 'diagnostics-option-debugging-mode';
166
  const ITEM_DIAGNOSTICS_OPTION_REMOTE_SCANS = 'diagnostics-option-remote-scans';
167
  const ITEM_DIAGNOSTICS_OPTION_SSL_VERIFICATION = 'diagnostics-option-ssl-verification';
329
  case self::ITEM_SCAN_RESULT_UNKNOWN_FILE_CORE:
330
  case self::ITEM_SCAN_RESULT_SKIPPED_PATHS:
331
  case self::ITEM_SCAN_RESULT_REPAIR_MODIFIED_FILES:
332
+ case self::ITEM_SCAN_RESULT_MODIFIED_PLUGIN:
333
+ case self::ITEM_SCAN_RESULT_MODIFIED_THEME:
334
 
335
  case self::ITEM_TOOLS_TWO_FACTOR:
336
  case self::ITEM_TOOLS_LIVE_TRAFFIC:
342
  case self::ITEM_DIAGNOSTICS_TEST_MEMORY:
343
  case self::ITEM_DIAGNOSTICS_TEST_EMAIL:
344
  case self::ITEM_DIAGNOSTICS_TEST_ACTIVITY_REPORT:
345
+ case self::ITEM_DIAGNOSTICS_REMOVE_CENTRAL_DATA:
346
  case self::ITEM_DIAGNOSTICS_OPTION_DEBUGGING_MODE:
347
  case self::ITEM_DIAGNOSTICS_OPTION_REMOTE_SCANS:
348
  case self::ITEM_DIAGNOSTICS_OPTION_SSL_VERIFICATION:
lib/wordfenceClass.php CHANGED
@@ -321,7 +321,7 @@ class wordfence {
321
 
322
  wfConfig::remove('lastPermissionsTemplateCheck');
323
  }
324
- public static function _scheduleRefreshUpdateNotification($upgrader, $options) {
325
  $defer = false;
326
  if (is_array($options) && isset($options['type']) && $options['type'] == 'core') {
327
  $defer = true;
@@ -1284,6 +1284,7 @@ SQL
1284
  add_action('upgrader_process_complete', 'wordfence::_refreshVulnerabilityCache');
1285
  add_action('upgrader_process_complete', 'wfUpdateCheck::syncAllVersionInfo');
1286
  add_action('upgrader_process_complete', 'wordfence::_scheduleRefreshUpdateNotification', 99, 2);
 
1287
  add_action('wordfence_refreshUpdateNotification', 'wordfence::_refreshUpdateNotification', 99, 0);
1288
  add_action('wordfence_completeCoreUpdateNotification', 'wordfence::_completeCoreUpdateNotification', 99, 0);
1289
 
321
 
322
  wfConfig::remove('lastPermissionsTemplateCheck');
323
  }
324
+ public static function _scheduleRefreshUpdateNotification($upgrader = null, $options = null) {
325
  $defer = false;
326
  if (is_array($options) && isset($options['type']) && $options['type'] == 'core') {
327
  $defer = true;
1284
  add_action('upgrader_process_complete', 'wordfence::_refreshVulnerabilityCache');
1285
  add_action('upgrader_process_complete', 'wfUpdateCheck::syncAllVersionInfo');
1286
  add_action('upgrader_process_complete', 'wordfence::_scheduleRefreshUpdateNotification', 99, 2);
1287
+ add_action('automatic_updates_complete', 'wordfence::_scheduleRefreshUpdateNotification', 99, 0);
1288
  add_action('wordfence_refreshUpdateNotification', 'wordfence::_refreshUpdateNotification', 99, 0);
1289
  add_action('wordfence_completeCoreUpdateNotification', 'wordfence::_completeCoreUpdateNotification', 99, 0);
1290
 
lib/wordfenceHash.php CHANGED
@@ -431,6 +431,9 @@ class wordfenceHash {
431
  }
432
 
433
  $realPath = realpath($path);
 
 
 
434
  if (isset($this->foldersProcessed[$realPath])) {
435
  return false;
436
  }
@@ -525,7 +528,7 @@ class wordfenceHash {
525
  'modifiedplugin' . $file,
526
  'modifiedplugin' . $file . $md5,
527
  'Modified plugin file: ' . $file,
528
- "This file belongs to plugin \"$itemName\" version \"$itemVersion\" and has been modified from the file that is distributed by WordPress.org for this version. Please use the link to see how the file has changed. If you have modified this file yourself, you can safely ignore this warning. If you see a lot of changed files in a plugin that have been made by the author, then try uninstalling and reinstalling the plugin to force an upgrade. Doing this is a workaround for plugin authors who don't manage their code correctly. [See our FAQ on www.wordfence.com for more info]",
529
  array(
530
  'file' => $file,
531
  'cType' => 'plugin',
@@ -565,7 +568,7 @@ class wordfenceHash {
565
  'modifiedtheme' . $file,
566
  'modifiedtheme' . $file . $md5,
567
  'Modified theme file: ' . $file,
568
- "This file belongs to theme \"$itemName\" version \"$itemVersion\" and has been modified from the original distribution. It is common for site owners to modify their theme files, so if you have modified this file yourself you can safely ignore this warning.",
569
  array(
570
  'file' => $file,
571
  'cType' => 'theme',
431
  }
432
 
433
  $realPath = realpath($path);
434
+ if ($realPath === '/') {
435
+ return false;
436
+ }
437
  if (isset($this->foldersProcessed[$realPath])) {
438
  return false;
439
  }
528
  'modifiedplugin' . $file,
529
  'modifiedplugin' . $file . $md5,
530
  'Modified plugin file: ' . $file,
531
+ sprintf(__("This file belongs to plugin \"$itemName\" version \"$itemVersion\" and has been modified from the file that is distributed by WordPress.org for this version. Please use the link to see how the file has changed. If you have modified this file yourself, you can safely ignore this warning. If you see a lot of changed files in a plugin that have been made by the author, then try uninstalling and reinstalling the plugin to force an upgrade. Doing this is a workaround for plugin authors who don't manage their code correctly. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a>", 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_SCAN_RESULT_MODIFIED_PLUGIN)),
532
  array(
533
  'file' => $file,
534
  'cType' => 'plugin',
568
  'modifiedtheme' . $file,
569
  'modifiedtheme' . $file . $md5,
570
  'Modified theme file: ' . $file,
571
+ sprintf(__("This file belongs to theme \"$itemName\" version \"$itemVersion\" and has been modified from the original distribution. It is common for site owners to modify their theme files, so if you have modified this file yourself you can safely ignore this warning. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a>", 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_SCAN_RESULT_MODIFIED_THEME)),
572
  array(
573
  'file' => $file,
574
  'cType' => 'theme',
modules/login-security/css/{admin-global.1596638737.css → admin-global.1598542714.css} RENAMED
File without changes
modules/login-security/css/{admin.1596638737.css → admin.1598542714.css} RENAMED
File without changes
modules/login-security/css/{colorbox.1596638737.css → colorbox.1598542714.css} RENAMED
File without changes
modules/login-security/css/{font-awesome.1596638737.css → font-awesome.1598542714.css} RENAMED
File without changes
modules/login-security/css/{ionicons.1596638737.css → ionicons.1598542714.css} RENAMED
File without changes
modules/login-security/css/{jquery-ui-timepicker-addon.1596638737.css → jquery-ui-timepicker-addon.1598542714.css} RENAMED
File without changes
modules/login-security/css/{jquery-ui.min.1596638737.css → jquery-ui.min.1598542714.css} RENAMED
File without changes
modules/login-security/css/{jquery-ui.structure.min.1596638737.css → jquery-ui.structure.min.1598542714.css} RENAMED
File without changes
modules/login-security/css/{jquery-ui.theme.min.1596638737.css → jquery-ui.theme.min.1598542714.css} RENAMED
File without changes
modules/login-security/css/{login.1596638737.css → login.1598542714.css} RENAMED
File without changes
modules/login-security/js/{admin-global.1596638737.js → admin-global.1598542714.js} RENAMED
File without changes
modules/login-security/js/{admin.1596638737.js → admin.1598542714.js} RENAMED
File without changes
modules/login-security/js/{jquery-ui-timepicker-addon.1596638737.js → jquery-ui-timepicker-addon.1598542714.js} RENAMED
File without changes
modules/login-security/js/{jquery.colorbox.1596638737.js → jquery.colorbox.1598542714.js} RENAMED
File without changes
modules/login-security/js/{jquery.colorbox.min.1596638737.js → jquery.colorbox.min.1598542714.js} RENAMED
File without changes
modules/login-security/js/{jquery.qrcode.min.1596638737.js → jquery.qrcode.min.1598542714.js} RENAMED
File without changes
modules/login-security/js/{jquery.tmpl.min.1596638737.js → jquery.tmpl.min.1598542714.js} RENAMED
File without changes
modules/login-security/js/{login.1596638737.js → login.1598542714.js} RENAMED
File without changes
modules/login-security/wordfence-login-security.php CHANGED
@@ -27,7 +27,7 @@ else {
27
  define('WORDFENCE_LS_FROM_CORE', ($wfCoreActive && isset($wfCoreLoading) && $wfCoreLoading));
28
 
29
  define('WORDFENCE_LS_VERSION', '1.0.5');
30
- define('WORDFENCE_LS_BUILD_NUMBER', '1596638737');
31
 
32
  if (!defined('WORDFENCE_LS_EMAIL_VALIDITY_DURATION_MINUTES')) { define('WORDFENCE_LS_EMAIL_VALIDITY_DURATION_MINUTES', 15); }
33
 
27
  define('WORDFENCE_LS_FROM_CORE', ($wfCoreActive && isset($wfCoreLoading) && $wfCoreLoading));
28
 
29
  define('WORDFENCE_LS_VERSION', '1.0.5');
30
+ define('WORDFENCE_LS_BUILD_NUMBER', '1598542714');
31
 
32
  if (!defined('WORDFENCE_LS_EMAIL_VALIDITY_DURATION_MINUTES')) { define('WORDFENCE_LS_EMAIL_VALIDITY_DURATION_MINUTES', 15); }
33
 
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: security, firewall, malware scanner, web application firewall, two factor
4
  Requires at least: 3.9
5
  Requires PHP: 5.3
6
  Tested up to: 5.5
7
- Stable tag: 7.4.10
8
 
9
  Secure your website with the most comprehensive WordPress security plugin. Firewall, malware scan, blocking, live traffic, login security & more.
10
 
@@ -183,6 +183,14 @@ Secure your website with Wordfence.
183
 
184
  == Changelog ==
185
 
 
 
 
 
 
 
 
 
186
  = 7.4.10 - August 5, 2020 =
187
 
188
  * Improvement: Prevent author sitemap from leaking usernames in WordPress >= 5.5.0.
4
  Requires at least: 3.9
5
  Requires PHP: 5.3
6
  Tested up to: 5.5
7
+ Stable tag: 7.4.11
8
 
9
  Secure your website with the most comprehensive WordPress security plugin. Firewall, malware scan, blocking, live traffic, login security & more.
10
 
183
 
184
  == Changelog ==
185
 
186
+ = 7.4.11 - August 27, 2020 =
187
+
188
+ * Improvement: Added diagnostic debug button to clear Wordfence Central connection data from the database.
189
+ * Improvement: Added help documentation links to modified plugin/theme file scan results.
190
+ * Fix: Prevent file system scan from following symlinks to root.
191
+ * Fix: Cleared pending plugin/theme update scan results and notification when a plugin/theme is auto-updated.
192
+ * Fix: Added check for when site is disconnected on Central's end, but not in the plugin.
193
+
194
  = 7.4.10 - August 5, 2020 =
195
 
196
  * Improvement: Prevent author sitemap from leaking usernames in WordPress >= 5.5.0.
wordfence.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Wordfence Security
4
  Plugin URI: http://www.wordfence.com/
5
  Description: Wordfence Security - Anti-virus, Firewall and Malware Scan
6
  Author: Wordfence
7
- Version: 7.4.10
8
  Author URI: http://www.wordfence.com/
9
  Network: true
10
  */
@@ -15,8 +15,8 @@ if(defined('WP_INSTALLING') && WP_INSTALLING){
15
  if (!defined('ABSPATH')) {
16
  exit;
17
  }
18
- define('WORDFENCE_VERSION', '7.4.10');
19
- define('WORDFENCE_BUILD_NUMBER', '1596638737');
20
  define('WORDFENCE_BASENAME', function_exists('plugin_basename') ? plugin_basename(__FILE__) :
21
  basename(dirname(__FILE__)) . '/' . basename(__FILE__));
22
 
4
  Plugin URI: http://www.wordfence.com/
5
  Description: Wordfence Security - Anti-virus, Firewall and Malware Scan
6
  Author: Wordfence
7
+ Version: 7.4.11
8
  Author URI: http://www.wordfence.com/
9
  Network: true
10
  */
15
  if (!defined('ABSPATH')) {
16
  exit;
17
  }
18
+ define('WORDFENCE_VERSION', '7.4.11');
19
+ define('WORDFENCE_BUILD_NUMBER', '1598542714');
20
  define('WORDFENCE_BASENAME', function_exists('plugin_basename') ? plugin_basename(__FILE__) :
21
  basename(dirname(__FILE__)) . '/' . basename(__FILE__));
22