{"id":11613,"date":"2026-07-10T16:06:58","date_gmt":"2026-07-10T08:06:58","guid":{"rendered":"https:\/\/aeosub.com\/malroot-security\/"},"modified":"2026-07-10T16:06:58","modified_gmt":"2026-07-10T08:06:58","slug":"malroot-security","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/malroot-security\/","title":{"rendered":"Malroot Security"},"content":{"rendered":"<div class=\"post-img\" style=\"margin-bottom: 25px\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/malroot-security\/assets\/banner-1544x500.png?rev=3566358\" alt=\"Malroot Security\" loading=\"lazy\" style=\"width: 100%;height: auto;border-radius: 12px\"><\/div>\n<div class=\"plugin-expert-review\" style=\"border: 1px solid #e2e8f0;border-left: 4px solid #4a3bca;border-radius: 10px;padding: 20px;margin-bottom: 25px;background: #fff;font-family: -apple-system, system-ui, sans-serif\">\n<div style=\"font-weight: bold;font-size: 1.1em;color: #4a3bca;margin-bottom: 10px\">LethaldiranMX Insight<\/div>\n<div style=\"color: #4a5568;font-size: 14px;line-height: 1.6\">\n<div>\n<p>Malroot Security addresses a critical blind spot in the WordPress security ecosystem by targeting database-resident malware, rogue database triggers, and self-healing rootkits that traditional file-based scanners routinely miss. As an operations-focused security tool, it shifts the focus from simple file integrity to deep database inspection, monitoring volatile areas like wp_options, wp_postmeta, and active MySQL events. This plugin is highly valuable for agencies, high-traffic e-commerce sites, and enterprise WordPress instances that require comprehensive post-hack forensic capabilities and real-time mitigation of persistent threats. By translating complex database anomalies into actionable, plain-language alerts, it bridges the gap between advanced database forensics and daily site administration.<\/p>\n<p><strong>Best Fit &amp; Operational Role:<\/strong> This plugin is an ideal fit for DevSecOps teams, system administrators, and maintenance agencies managing high-value WordPress installations that are frequent targets of sophisticated, multi-vector attacks. It operates as a secondary, deep-inspection layer alongside standard edge firewalls, specifically solving the operational challenge of detecting &#8220;invisible&#8221; persistence mechanisms\u2014such as rogue REST API endpoints, self-healing mu-plugins loaders, and malicious MySQL triggers that recreate admin users. By integrating automated incident response, 2FA, and outbound connection logging, it serves as an internal security information and event management (SIEM) tool directly within the WordPress dashboard.<\/p>\n<p><strong>Potential Limitations &amp; Pitfalls:<\/strong> Deep database scanning of large tables like wp_posts and wp_postmeta, combined with outbound connection logging, can introduce noticeable database query overhead and CPU utilization, particularly on massive legacy databases or under-provisioned hosting environments. Additionally, real-time hooks designed to block rogue admin creation and eval-based injections require careful testing in staging environments to ensure they do not conflict with custom membership plugins, external API integrations, or automated user provisioning tools. Managing the volume of alerts from outbound connection logging and file checksum mismatches will also require a structured operational workflow to prevent alert fatigue.<\/p>\n<\/div>\n<\/div><\/div>\n<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<div style=\"padding: 20px;border-bottom: 1px solid #edf2f7;background: #fafafa;display: flex;align-items: flex-start\">\n                <img decoding=\"async\" src=\"https:\/\/ps.w.org\/malroot-security\/assets\/icon-256x256.png?rev=3566358\" alt=\"Malroot Security icon\" loading=\"lazy\" style=\"width: 45px;height: 45px;border-radius: 8px;margin-right: 15px\"> <\/p>\n<div style=\"flex: 1;line-height: 1.2\">\n<div style=\"font-weight: bold;font-size: 1.1em;color: #1a202c\">Plugin Specification<\/div>\n<p>                    <small style=\"color: #718096\">WordPress.org Official Data<\/small>\n                <\/div>\n<\/p><\/div>\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\">Developer<\/th>\n<td style=\"padding: 12px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/nirajpal\/\" target=\"_blank\" rel=\"noopener\">Niraj Pal<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.0.8<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">10 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">6.0 \/ 7.0.1<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-07-10 8:04am GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/malroot-security\/\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\">View Details -&gt;<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Catches database-resident backdoors, rogue admins, malicious MySQL triggers and self-healing rootkits other scanners miss.<\/div>\n<p>Malroot Security is a WordPress malware scanner built specifically to catch the threats that file-based scanners miss. It was created after a real-world investigation of compromised WordPress sites where Wordfence and similar tools failed to detect database-resident malware, rogue REST API endpoints, malicious MySQL triggers, and self-healing rootkit patterns.<\/p>\n<h4>What makes Malroot different<\/h4>\n<p>Most security plugins only scan files on disk. Malroot also looks at:<\/p>\n<ul>\n<li><strong>Database content<\/strong> \u2014 <code>wp_options<\/code>, <code>wp_posts<\/code>, <code>wp_postmeta<\/code> for injected PHP\/JS payloads<\/li>\n<li><strong>MySQL triggers and events<\/strong> \u2014 catches rootkits that recreate fake admins on every spam comment<\/li>\n<li><strong>REST API routes<\/strong> \u2014 flags non-standard namespaces with dangerous capabilities<\/li>\n<li><strong>mu-plugins<\/strong> \u2014 detects self-healing loaders that reinstall malware after deletion<\/li>\n<li><strong>Bot-cloaked content<\/strong> \u2014 compares Googlebot vs human page output to detect SEO spam<\/li>\n<li><strong>Outbound connections<\/strong> \u2014 logs every external HTTP request and alerts on known C2 hosts<\/li>\n<\/ul>\n<h4>Core features<\/h4>\n<ul>\n<li>Eight independent scanner modules with severity-based findings<\/li>\n<li>One-click incident response that replays a complete malware cleanup<\/li>\n<li>Auto-quarantine with full restore for files, options, postmeta, users, triggers, events<\/li>\n<li>Real-time hooks block rogue admin creation and eval-based option injection<\/li>\n<li>WordPress.org checksum verification \u2014 official files auto-accept silently<\/li>\n<li>Login security with IP throttling, automated-tool detection, geo-aware new-origin alerts<\/li>\n<li>Built-in 2FA (TOTP, RFC 6238 \u2014 works with Google Authenticator, Authy, 1Password)<\/li>\n<li>Spam registration shield with honeypot, pattern blocklist, and bulk subscriber cleanup<\/li>\n<li>Email and Slack alerting with deduplication<\/li>\n<li>CSV export of findings for audit trails<\/li>\n<li>Self-integrity check \u2014 Malroot detects tampering with its own code<\/li>\n<\/ul>\n<h4>Plain-language Simple View<\/h4>\n<p>Findings are translated from technical rule IDs into plain English with clear actions:<\/p>\n<ul>\n<li>&#8220;Hidden trap found in your database&#8221; instead of &#8220;TR-005: Trigger after_insert_comment&#8221;<\/li>\n<li>&#8220;Fake admin account found&#8221; instead of &#8220;UA-010: Known malware admin name&#8221;<\/li>\n<li>&#8220;Hacker tool found on your site&#8221; instead of &#8220;MAL-005: WSO\/FilesMan webshell signature&#8221;<\/li>\n<\/ul>\n<p>Each finding card answers three questions: what happened, why it matters, what to do.<\/p>\n<h4>How verified-safe checking works<\/h4>\n<p>When a file changes, Malroot looks up its MD5 hash in:<\/p>\n<ol>\n<li>The official WordPress.org core checksums API<\/li>\n<li>The official plugin checksums at downloads.wordpress.org<\/li>\n<li>A recent plugin\/theme update window from the operator&#8217;s own update history<\/li>\n<\/ol>\n<p>Files that match an official checksum auto-accept silently \u2014 the user never sees them. Files that match a malware signature get flagged as critical regardless of any update window. Custom files and theme edits surface for manual review.<\/p>\n<h4>Real-world validation<\/h4>\n<p>Malroot was developed during the cleanup of compromised WordPress sites, including sites where the rogue plugin had embedded a MySQL trigger that recreated a <code>newsfeed<\/code> admin user every time a spam comment was posted. That attack pattern is now a built-in detection.<\/p>\n<h3>External services<\/h3>\n<p>This plugin connects to the external services listed below. By default only the WordPress.org checksum APIs are used; the rest are opt-in. Each is documented with what is sent, when, and why.<\/p>\n<p><strong>WordPress.org core checksums API<\/strong> (<code>api.wordpress.org<\/code>)<br \/>\nUsed to verify whether changed core files match official WordPress release checksums. The plugin sends only the WordPress version string and locale (e.g. <code>6.5.4<\/code> \/ <code>en_US<\/code>) to fetch the public checksum manifest. No site content is sent. This is the same API WordPress core uses for its built-in checksum tool.<br \/>\nProvider: WordPress Foundation. Privacy policy: https:\/\/wordpress.org\/about\/privacy\/. Terms: https:\/\/wordpress.org\/about\/<\/p>\n<p><strong>WordPress.org plugin checksums<\/strong> (<code>downloads.wordpress.org<\/code>)<br \/>\nUsed to verify whether changed plugin files match the checksums of the version installed from the WordPress.org plugin directory. The plugin sends the plugin slug and version to fetch the public checksum manifest. No site content is sent.<br \/>\nProvider: WordPress Foundation. Privacy policy: https:\/\/wordpress.org\/about\/privacy\/. Terms: https:\/\/wordpress.org\/about\/<\/p>\n<p><strong>ipapi.co GeoIP lookup<\/strong> (<code>ipapi.co<\/code>) \u2014 optional, OFF by default<br \/>\nDisabled unless the administrator turns on &#8220;IP geolocation&#8221; on the Settings page. When enabled, it displays a human-readable country and city for IP addresses recorded on the Login Activity page. The plugin sends only the IP address being looked up, and only when an administrator opens the Login Activity page \u2014 never during normal site traffic. Results are cached locally for 30 days so each unique IP is queried at most once per month. If the option is left off (the default), no IP address is ever sent and login records simply show the raw IP.<br \/>\nProvider: ipapi. Privacy policy: https:\/\/ipapi.co\/privacy\/. Terms: https:\/\/ipapi.co\/terms\/<\/p>\n<p><strong>Slack incoming webhook<\/strong> (URL configured by the site administrator, optional)<br \/>\nIf the site administrator enters a Slack incoming webhook URL on the Settings page, critical and high-severity alerts are POSTed to that URL as a short notification payload (event type, severity, summary, and site host). No site content, credentials, or scan results are sent. This service is opt-in and only active when a webhook URL has been configured.<br \/>\nProvider: Slack. Privacy policy: https:\/\/slack.com\/trust\/privacy\/privacy-policy. Terms: https:\/\/slack.com\/terms-of-service<\/p>\n<div class=\"plugin-editorial-note\" style=\"margin-top: 25px;padding: 12px 15px;background: #f8fafc;border-radius: 6px;color: #64748b;font-size: 13px;line-height: 1.5\">Editorial note: This overview combines WordPress.org official plugin metadata with an AI-assisted LethaldiranMX editorial review. Plugin data should be verified on the official WordPress.org listing before installation.<\/div>","protected":false},"excerpt":{"rendered":"<p>Catches database-resident backdoors, rogue admins, malicious MySQL triggers and self-healing rootkits other scanners miss.<\/p>","protected":false},"author":1,"featured_media":11614,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[2310,932,2312,1094,664,555],"class_list":["post-11613","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-backdoor","tag-firewall","tag-malware","tag-scanner","tag-security","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=11613"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11613\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/11614"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=11613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=11613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=11613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}