{"id":262454,"date":"2025-12-06T15:46:26","date_gmt":"2025-12-06T15:46:26","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bearmor-security\/"},"modified":"2026-10-16T21:12:07","modified_gmt":"2026-10-16T21:12:07","slug":"bearmor-security","status":"publish","type":"plugin","link":"https:\/\/gl.wordpress.org\/plugins\/bearmor-security\/","author":23404978,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.1.3","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Bearmor Security","header_author":"Bearmor","header_description":"Lightweight, robust WordPress security plugin for SMBs.","assets_banners_color":"252044","last_updated":"2026-10-16 21:12:07","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/bearmor.eu","header_author_uri":"https:\/\/bearmor.eu","rating":0,"author_block_rating":0,"active_installs":70,"downloads":2229,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.9.10":{"tag":"0.9.10","author":"andeirz","date":"2025-12-08 18:03:14","revision":3414620},"0.9.11":{"tag":"0.9.11","author":"andeirz","date":"2025-12-10 19:47:17","revision":3416741},"0.9.12":{"tag":"0.9.12","author":"andeirz","date":"2025-12-10 20:09:36","revision":3416752},"0.9.13":{"tag":"0.9.13","author":"andeirz","date":"2025-12-16 19:02:11","revision":3421351},"0.9.14":{"tag":"0.9.14","author":"andeirz","date":"2025-12-17 19:01:34","revision":3422234},"0.9.15":{"tag":"0.9.15","author":"andeirz","date":"2026-01-24 11:27:07","revision":3446084},"0.9.16":{"tag":"0.9.16","author":"andeirz","date":"2026-02-28 15:35:49","revision":3471664},"0.9.3":{"tag":"0.9.3","author":"andeirz","date":"2025-12-06 15:45:18","revision":3413062},"0.9.4":{"tag":"0.9.4","author":"andeirz","date":"2025-12-06 17:56:26","revision":3413153},"0.9.5":{"tag":"0.9.5","author":"andeirz","date":"2025-12-06 18:03:09","revision":3413168},"0.9.6":{"tag":"0.9.6","author":"andeirz","date":"2025-12-06 19:21:33","revision":3413201},"0.9.7":{"tag":"0.9.7","author":"andeirz","date":"2025-12-06 20:45:55","revision":3413223},"0.9.8":{"tag":"0.9.8","author":"andeirz","date":"2025-12-07 19:40:02","revision":3413691},"0.9.9":{"tag":"0.9.9","author":"andeirz","date":"2025-12-08 17:54:56","revision":3414610},"1.0.0":{"tag":"1.0.0","author":"andeirz","date":"2026-05-02 19:41:12","revision":3521098},"1.0.1":{"tag":"1.0.1","author":"andeirz","date":"2026-05-08 18:20:15","revision":3526785},"1.0.2":{"tag":"1.0.2","author":"andeirz","date":"2026-05-16 18:05:26","revision":3533960},"1.0.3":{"tag":"1.0.3","author":"andeirz","date":"2026-06-27 10:32:03","revision":3588011},"1.0.4":{"tag":"1.0.4","author":"andeirz","date":"2026-06-28 08:58:28","revision":3588626},"1.1.0":{"tag":"1.1.0","author":"andeirz","date":"2026-08-15 10:06:15","revision":3648403},"2.0.0":{"tag":"2.0.0","author":"andeirz","date":"2026-10-16 21:12:07","revision":3751140}},"upgrade_notice":{"2.0.0":"<p>Fully free release: authenticator-app 2FA, AI security summary, vulnerability alerts and many fixes. No settings are lost.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3413061,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3413061,"resolution":"1544x500","location":"assets","locale":"","width":1024,"height":329},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3413075,"resolution":"772x250","location":"assets","locale":"","width":1024,"height":329}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.9.10","0.9.11","0.9.12","0.9.13","0.9.14","0.9.15","0.9.16","0.9.3","0.9.4","0.9.5","0.9.6","0.9.7","0.9.8","0.9.9","1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.1.0","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3751141,"resolution":"1","location":"assets","locale":"","width":1280,"height":1492},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3751141,"resolution":"10","location":"assets","locale":"","width":1280,"height":1095},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3751141,"resolution":"11","location":"assets","locale":"","width":1280,"height":900},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3751141,"resolution":"12","location":"assets","locale":"","width":1280,"height":900},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3751141,"resolution":"13","location":"assets","locale":"","width":1280,"height":195},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3751141,"resolution":"2","location":"assets","locale":"","width":1280,"height":1095},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3751141,"resolution":"3","location":"assets","locale":"","width":1280,"height":1095},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3751141,"resolution":"4","location":"assets","locale":"","width":1280,"height":1095},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3751141,"resolution":"5","location":"assets","locale":"","width":1280,"height":1600},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3751141,"resolution":"6","location":"assets","locale":"","width":1280,"height":1600},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3751141,"resolution":"7","location":"assets","locale":"","width":1280,"height":1095},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3751141,"resolution":"8","location":"assets","locale":"","width":1280,"height":1600},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3751141,"resolution":"9","location":"assets","locale":"","width":1280,"height":1095}},"screenshots":{"1":"Security dashboard with status, AI security summary, firewall, login and uptime overview.","2":"Malware scan results with quarantine and whitelist actions.","3":"File changes: integrity monitoring for core, theme and uploads.","4":"Vulnerability alerts for WordPress core, plugins and themes.","5":"Hardening: 30 rules in three tiers with self-test.","6":"Activity log of logins and admin actions.","7":"General settings.","8":"Scanning settings.","9":"Firewall settings: rate limiting, country blocking, honeypot and IP whitelist.","10":"Two-factor settings: choose which administrators must use 2FA.","11":"Authenticator app setup with QR code on the user profile.","12":"Two-factor code prompt on the login screen.","13":"Docs and Settings links on the Plugins screen."}},"plugin_section":[],"plugin_tags":[1174,1229,55021,600,1909],"plugin_category":[54],"plugin_contributors":[251786],"plugin_business_model":[],"class_list":["post-262454","plugin","type-plugin","status-publish","hentry","plugin_tags-firewall","plugin_tags-login-security","plugin_tags-malware-scanner","plugin_tags-security","plugin_tags-two-factor-authentication","plugin_category-security-and-spam-protection","plugin_contributors-andeirz","plugin_committers-andeirz"],"banners":{"banner":"https:\/\/ps.w.org\/bearmor-security\/assets\/banner-772x250.jpg?rev=3413075","banner_2x":"https:\/\/ps.w.org\/bearmor-security\/assets\/banner-1544x500.jpg?rev=3413061","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bearmor-security\/assets\/icon-256x256.png?rev=3413061","icon_2x":"https:\/\/ps.w.org\/bearmor-security\/assets\/icon-256x256.png?rev=3413061","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-1.png?rev=3751141","caption":"Security dashboard with status, AI security summary, firewall, login and uptime overview."},{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-2.png?rev=3751141","caption":"Malware scan results with quarantine and whitelist actions."},{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-3.png?rev=3751141","caption":"File changes: integrity monitoring for core, theme and uploads."},{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-4.png?rev=3751141","caption":"Vulnerability alerts for WordPress core, plugins and themes."},{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-5.png?rev=3751141","caption":"Hardening: 30 rules in three tiers with self-test."},{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-6.png?rev=3751141","caption":"Activity log of logins and admin actions."},{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-7.png?rev=3751141","caption":"General settings."},{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-8.png?rev=3751141","caption":"Scanning settings."},{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-9.png?rev=3751141","caption":"Firewall settings: rate limiting, country blocking, honeypot and IP whitelist."},{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-10.png?rev=3751141","caption":"Two-factor settings: choose which administrators must use 2FA."},{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-11.png?rev=3751141","caption":"Authenticator app setup with QR code on the user profile."},{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-12.png?rev=3751141","caption":"Two-factor code prompt on the login screen."},{"src":"https:\/\/ps.w.org\/bearmor-security\/assets\/screenshot-13.png?rev=3751141","caption":"Docs and Settings links on the Plugins screen."}],"raw_content":"<!--section=description-->\n<p>Bearmor Security puts straightforward, professional WordPress security tools on small business and WooCommerce sites \u2014 without charging for essential features. The plugin is completely free: no PRO plan, no upsell tiers, no feature locks. Features other security plugins keep behind paid plans are free here: two-factor authentication with an authenticator app, daily vulnerability alerts, a plain-language AI security summary, a web application firewall and file integrity monitoring.<\/p>\n\n<p>You get one clear dashboard that tells you whether your site is Protected, needs a Review, or needs Action \u2014 and links directly to the setting to fix it. Setup is quick and reversible, and each hardening rule explains what it does and what could break.<\/p>\n\n<p><strong>Documentation:<\/strong> step-by-step setup guides are at <a href=\"https:\/\/bearmor.eu\/docs\/\">bearmor.eu\/docs<\/a>.<\/p>\n\n<h4>Firewall<\/h4>\n\n<ul>\n<li>Blocks common SQL injection, XSS, path traversal and command injection patterns before WordPress loads the page<\/li>\n<li>Optional rate limiting per IP (logged-in users, WP-CLI and REST are never limited)<\/li>\n<li>Optional country blocking by 2-letter country code<\/li>\n<li>IP whitelist so you never lock out yourself or your office<\/li>\n<li>Honeypot fields on the login and comment forms catch bots without CAPTCHAs<\/li>\n<\/ul>\n\n<h4>Login protection<\/h4>\n\n<ul>\n<li>Brute force protection: repeated failed logins trigger 5 minute, 30 minute and 24 hour lockouts, and repeat offenders are blocked permanently<\/li>\n<li>Login activity log with failed and successful attempts and their country<\/li>\n<li>Generic login errors so attackers can't guess usernames<\/li>\n<\/ul>\n\n<h4>Two-factor authentication (2FA)<\/h4>\n\n<ul>\n<li>Authenticator app codes (Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden and any TOTP app)<\/li>\n<li>QR code setup on the user profile, generated on your own server<\/li>\n<li>One-time backup codes for a lost phone<\/li>\n<li>Email codes as an alternative method<\/li>\n<li>Choose which administrators must use 2FA; \"remember this device for 30 days\" option<\/li>\n<\/ul>\n\n<h4>Malware scanner and file integrity<\/h4>\n\n<ul>\n<li>Daily scan of WordPress root, wp-content PHP files, the active theme, mu-plugins and uploads for backdoors, web shells and obfuscated code<\/li>\n<li>Core files checked against official WordPress.org checksums, including localized builds<\/li>\n<li>Alerts for changes in core, wp-config.php, the active theme and PHP files in uploads<\/li>\n<li>Quarantine, restore, or mark a file as safe in one click<\/li>\n<\/ul>\n\n<h4>Vulnerability alerts<\/h4>\n\n<ul>\n<li>Daily check of WordPress core, plugins and themes against the WPVulnerability database<\/li>\n<li>Shows severity, CVE and the fixed version; one email for critical issues<\/li>\n<\/ul>\n\n<h4>Hardening (30 rules)<\/h4>\n\n<ul>\n<li>Three tiers: Baseline, Access Hardening and Lockdown<\/li>\n<li>Security headers: X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, HSTS<\/li>\n<li>Disable XML-RPC, pingbacks, file editor, Application Passwords, user enumeration and REST user listing<\/li>\n<li>Block PHP execution in uploads, restrict the REST API to logged-in users (Contact Form 7 and WooCommerce checkout keep working)<\/li>\n<li>\"Freeze Site\" preset, hourly file tripwire and login IP allowlist for finished sites<\/li>\n<li>Each rule explains what it does, what it might break and how to test it; a built-in self-test checks that enabled rules work; changes can be undone for 24 hours<\/li>\n<\/ul>\n\n<h4>AI security summary<\/h4>\n\n<ul>\n<li>A short, plain-language weekly summary of what is working and what needs attention, with links to the right setting<\/li>\n<li>Built from your site's own facts: firewall blocks, failed logins, scans, updates, vulnerabilities and 2FA status<\/li>\n<\/ul>\n\n<h4>Activity log and uptime<\/h4>\n\n<ul>\n<li>Audit log of logins and logouts, new and deleted users, plugin installs, activations and deletions, theme switches and file actions<\/li>\n<li>Uptime monitoring with history on the dashboard<\/li>\n<\/ul>\n\n<h4>Need a hand?<\/h4>\n\n<p>Prefer someone to look after it for you? Bearmor also offers <a href=\"https:\/\/bearmor.eu\/wordpress-maintenance\/\">WordPress maintenance<\/a> \u2013 updates, monitoring and cleanup by real people. The plugin remains fully free either way.<\/p>\n\n<h4>External services<\/h4>\n\n<p>This plugin connects to these services over HTTPS:<\/p>\n\n<ul>\n<li><strong>Bearmor (bearmor.eu)<\/strong> \u2013 site registration, daily check-in, uptime monitoring and the AI security summary. The summary request sends counts and names (plugin names, versions, scan results), not passwords or visitor data; bearmor.eu generates the text using OpenAI. <a href=\"https:\/\/bearmor.eu\/privacy\">Privacy Policy<\/a>, <a href=\"https:\/\/bearmor.eu\/terms\">Terms<\/a><\/li>\n<li><strong>WordPress.org API<\/strong> \u2013 official core file checksums.<\/li>\n<li><strong>WPVulnerability API (wpvulnerability.net)<\/strong> \u2013 vulnerability data for core, plugins and themes.<\/li>\n<li><strong>ip-api.com<\/strong> \u2013 country lookup for the login activity log.<\/li>\n<li><strong>ipwho.is<\/strong> \u2013 country lookup for firewall country blocking (only when enabled).<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install Bearmor Security from Plugins &gt; Add New, or upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate it. The first file baseline and scans are scheduled automatically.<\/li>\n<li>Open Bearmor Security &gt; Hardening and switch on the Baseline rules.<\/li>\n<li>Open your profile, scan the QR code with an authenticator app and save the backup codes.<\/li>\n<li>In Settings &gt; 2FA, turn on two-factor and tick the administrators who must use it.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20bearmor%20security%20really%20free%3F\"><h3>Is Bearmor Security really free?<\/h3><\/dt>\n<dd><p>Yes. Every feature is included. There is no PRO version, no license key and no locked features.<\/p><\/dd>\n<dt id=\"which%20authenticator%20apps%20work%3F\"><h3>Which authenticator apps work?<\/h3><\/dt>\n<dd><p>Any app that supports standard TOTP codes, such as Google Authenticator, Microsoft Authenticator, Authy, 1Password or Bitwarden.<\/p><\/dd>\n<dt id=\"i%20lost%20my%20phone.%20how%20do%20i%20log%20in%3F\"><h3>I lost my phone. How do I log in?<\/h3><\/dt>\n<dd><p>Use one of your 8-character backup codes. If you have no codes left, add <code>define( 'BEARMOR_DISABLE_2FA', true );<\/code> to wp-config.php, log in, and set up 2FA again.<\/p><\/dd>\n<dt id=\"i%20locked%20myself%20out%20with%20the%20login%20ip%20allowlist.\"><h3>I locked myself out with the login IP allowlist.<\/h3><\/dt>\n<dd><p>The Lockdown tier documents a wp-config.php line that disables the allowlist so you can get back in.<\/p><\/dd>\n<dt id=\"will%20it%20break%20woocommerce%20or%20contact%20form%207%3F\"><h3>Will it break WooCommerce or Contact Form 7?<\/h3><\/dt>\n<dd><p>The default rules are safe. \"REST API for logged-in users only\" keeps the WooCommerce Store API and Contact Form 7 open, and every rule lists what it might affect.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20site%3F\"><h3>Does it slow down my site?<\/h3><\/dt>\n<dd><p>Scans run in the background on WP-Cron. The firewall only does fast pattern checks per request.<\/p><\/dd>\n<dt id=\"why%20are%20plugin%20folders%20not%20malware-scanned%3F\"><h3>Why are plugin folders not malware-scanned?<\/h3><\/dt>\n<dd><p>Plugin code is maintained by its authors and checked by the vulnerability scan instead; Bearmor scans the places attackers usually hide code: core, the active theme, mu-plugins, uploads and root files.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20to%20bearmor.eu%3F\"><h3>What data is sent to bearmor.eu?<\/h3><\/dt>\n<dd><p>Site URL, admin email for alerts, plugin version, uptime pings and, for the AI summary, a short security brief with counts and plugin names. No passwords or visitor data.<\/p><\/dd>\n<dt id=\"where%20is%20the%20documentation%3F\"><h3>Where is the documentation?<\/h3><\/dt>\n<dd><p>At <a href=\"https:\/\/bearmor.eu\/docs\/\">bearmor.eu\/docs<\/a>. There is also a Docs link on the Plugins screen and in the Bearmor dashboard header.<\/p><\/dd>\n<dt id=\"can%20someone%20fix%20my%20site%20for%20me%3F\"><h3>Can someone fix my site for me?<\/h3><\/dt>\n<dd><p>Yes. See <a href=\"https:\/\/bearmor.eu\/wordpress-maintenance\/\">WordPress maintenance<\/a> for maintenance, monitoring and cleanup services.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<p>A fresh, fully free start. Everything from the 1.2 series in one release:<\/p>\n\n<ul>\n<li>Completely free: no PRO plan, no license, no locked features. Vulnerability alerts, AI security summary, uptime and firewall tools are included for everyone.<\/li>\n<li>Two-factor authentication with any authenticator app: QR code setup on the profile (generated on your server), one-time backup codes, optional email codes, per-admin selection and \"remember this device for 30 days\".<\/li>\n<li>AI security summary: a plain-language overview of what is working and what needs attention, built from your site's own facts, with links to the right setting.<\/li>\n<li>Vulnerability alerts for core, plugins and themes, with one email for critical issues.<\/li>\n<li>One clear status: Protected, Review, or Action needed.<\/li>\n<li>File integrity: SHA-256 baselines, no repeat alerts for old changes, silent re-baseline after updates, localized WordPress builds checked against their own checksums, Installatron host files ignored.<\/li>\n<li>Fix: login lockouts expired immediately on sites whose timezone is not UTC; \"x ago\" times were off by the timezone offset.<\/li>\n<li>Fix: re-blocking an expired IP no longer fails; fewer database deadlocks on busy sites.<\/li>\n<li>\"REST API for logged-in users only\" keeps Contact Form 7 and the WooCommerce Store API (cart, blocks checkout) working.<\/li>\n<li>Hardening changes can be undone for 24 hours; the REST batch endpoint can be blocked.<\/li>\n<li>Fix: the 2FA code step no longer shows WordPress's own Remember Me, Log In and lost-password links.<\/li>\n<li>Docs and Settings links on the Plugins screen and a Docs button in the dashboard header.<\/li>\n<li>Lockout emails removed; one email only for critical vulnerabilities or unexpected core, wp-config.php or uploads PHP changes.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Hardening expanded to 25+ rules in three tiers \u2014 Baseline (safe everywhere), Access Hardening, and Lockdown (for frozen sites).<\/li>\n<li>New: Every hardening rule now documents what it does, what it might break, and how to test it after enabling.<\/li>\n<li>New: Hardening self-test \u2014 probes your site anonymously from the outside and verifies each enabled rule actually takes effect, plus warns about known conflicts with active plugins (Jetpack, WooCommerce, Contact Form 7).<\/li>\n<li>New: \"Freeze Site\" preset for finished sites: DISALLOW_FILE_MODS, block all uploads, block new user creation, hourly file tripwire with instant email alerts, and a login IP allowlist (with a wp-config escape hatch if you lock yourself out).<\/li>\n<li>New: Tier 1 rules \u2014 HSTS header, pingback disabling, head cleanup (RSD\/wlwmanifest\/shortlink), oEmbed discovery off, REST user-listing block, directory browsing off (.htaccess).<\/li>\n<li>New: Tier 2 rules \u2014 Application Passwords off, forced registration off, comments off, author archives off, PHP execution blocked in uploads (.htaccess), RSS feeds off, REST API restricted to logged-in users.<\/li>\n<li>Fix: Force SSL redirect never fired (the hook only registered when the request was already HTTPS).<\/li>\n<li>Fix: Deactivating the plugin now removes ALL scheduled tasks (previously ~9 cron events were left behind).<\/li>\n<li>Fix: File action audit entries (quarantine\/restore\/delete) were written to a table that never existed \u2014 they now appear in Security Logs.<\/li>\n<li>Fix: Dashboard \"next scan\" widget read a non-existent schedule and always showed \"Not scheduled\".<\/li>\n<li>Fix: Security score now counts hardening rules from the live rule registry, so fresh installs no longer show \"0 rules on\" while headers are actually being sent.<\/li>\n<li>Security: Client IP detection no longer trusts spoofable forwarded headers on direct connections (fixes login-block bypass and log poisoning).<\/li>\n<li>Security: Uptime history AJAX endpoint now requires a nonce.<\/li>\n<li>Maintenance: Removed dead code (unused batch processor, legacy OpenAI method, orphaned admin page) and updated \"Tested up to\" to WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Release: Same changes as 1.0.3; version bump to restore WordPress.org auto-updates.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fix: Vulnerability matcher reported false positives for unfixed and eq feed records.<\/li>\n<li>Fix: Matcher now correctly combines min\/max bounds and handles the eq operator.<\/li>\n<li>Fix: Example: WooCommerce 10.x no longer flagged for a 7.1.0-only issue.<\/li>\n<li>Fix: Existing false-positive vulnerability rows and cached API responses are purged on upgrade and re-evaluated silently with the corrected matcher.<\/li>\n<li>Fix: Dashboard uptime auto-sync never fired due to an incorrect admin page slug check.<\/li>\n<li>Security: Call-home requests (uptime, AI analysis) now authenticate with the per-site key.<\/li>\n<li>Maintenance: Site registration now initialises on activation; removed dead code and leftover .bak files.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Fatal error in cron-based file integrity check \u2014 <code>Bearmor_Checksum::get_checksum()<\/code> was renamed to <code>get_stored()<\/code> and the call site was not updated, causing daily scans to crash and trigger a WP recovery email<\/li>\n<li>Fix: Hash algorithm mismatch in <code>check_root_directory()<\/code> \u2014 baseline stored SHA-256 but integrity comparison used SHA-1, causing all root-level files to be incorrectly flagged as changed<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<\/ul>","raw_excerpt":"Completely free WordPress security: firewall, 2FA with authenticator app, malware scan, file integrity, vulnerability alerts, AI summary.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/262454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=262454"}],"author":[{"embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/andeirz"}],"wp:attachment":[{"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=262454"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=262454"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=262454"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=262454"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=262454"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=262454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}