Title: DevDome Malware Scanner – Virus Scanner &amp; Malware Removal
Author: DevDome
Published: <strong>September 9, 2026</strong>
Last modified: September 10, 2026

---

Search plugins

![](https://ps.w.org/devdome-malware-scanner/assets/banner-772x250.png?rev=3689090)

![](https://ps.w.org/devdome-malware-scanner/assets/icon-256x256.png?rev=3689090)

# DevDome Malware Scanner – Virus Scanner & Malware Removal

 By [DevDome](https://profiles.wordpress.org/devdome/)

[Download](https://downloads.wordpress.org/plugin/devdome-malware-scanner.1.2.0.zip)

 * [Details](https://wordpress.org/plugins/devdome-malware-scanner/#description)
 * [Reviews](https://wordpress.org/plugins/devdome-malware-scanner/#reviews)
 *  [Installation](https://wordpress.org/plugins/devdome-malware-scanner/#installation)
 * [Development](https://wordpress.org/plugins/devdome-malware-scanner/#developers)

 [Support](https://wordpress.org/support/plugin/devdome-malware-scanner/)

## Description

#### WordPress Malware Scanner & Malware Removal

DevDome Malware Scanner is a WordPress malware scanner for detecting malware, backdoors,
malicious code, infected files and reinfection risks. Scan WordPress files and database
content, quarantine threats, and safely repair trusted files from the dashboard.

It combines malware signatures, file integrity checks, code analysis and WordPress-
specific security checks to find modified core files, suspicious PHP, database injections,
hidden backdoors, rogue administrators, malicious cron jobs and other persistence
mechanisms.

It does not only find infected files. It also looks for the things that bring the
malware back after a cleanup, and it keeps uncertain findings separate from confirmed
threats.

#### What It Finds

 * Malware and malicious code
 * Backdoors and web shells
 * Modified WordPress core files
 * Modified plugin and theme files
 * Suspicious PHP files in uploads
 * Database injections and hidden spam
 * Rogue administrator accounts
 * Malicious WP-Cron tasks
 * Must-use plugins and drop-ins
 * Configuration file changes (wp-config.php, .htaccess, .user.ini)
 * Files that may reinfect the site after cleanup

#### Scan Files and Database

The malware scan covers WordPress core, every plugin and theme, the uploads folder,
must-use plugins, drop-ins and the configuration files. The database scan looks 
for script and iframe injections, encoded payloads, SEO spam and hidden links across
options, posts, revisions and meta. Administrator accounts are read from the capability
values in usermeta, not just role labels, and every WP-Cron event is checked for
tasks that can re-download a payload.

Every finding says what changed, why it is suspicious, how confident the scanner
is, and what to do about it. Every row expands to a detail panel with the facts 
behind the decision: file size, modified time, plugin and hash for a file; username,
email, role and registered date for an account; hook and next run for a scheduled
task; the post or option for database content. For a modified core or plugin file,
View what changed shows the lines that differ from the official copy.

#### Find Backdoors and Reinfection Risks

Removing infected files alone does not clean a site that keeps a rogue admin, a 
cron beacon or a planted must-use plugin behind. These are tracked on their own 
Reinfection risks tab with a Neutralize action: an unknown administrator loses its
admin rights (the account stays and can be restored under Users), a planted must-
use plugin or drop-in moves to quarantine, a suspicious scheduled task is removed.
The tab also lists every must-use plugin and drop-in present on the site. A neutralized
threat that comes back is reported again as reappeared.

#### Safe Malware Cleanup

One click fix closes every back door the plugin can fix safely and reversibly: known
malware, executables hidden in uploads, unexpected files in core and high-confidence
malicious code are moved to quarantine; modified core and WordPress.org plugin files
are replaced with the official copy. The scan then runs again so the clean verdict
is verified, not assumed.

A quarantined file is removed from disk and its contents are kept as a compressed,
non-executable copy in the plugin’s own database table, together with the original
path, SHA-256, size and permissions. Nothing executable is ever written anywhere
on disk. It can be restored at any time from the Quarantine tab, and the restored
file is verified against the recorded hash. Deleting a quarantined file permanently
is a separate, explicit action.

Threats that need a human stay under Needs your decision with a plain explanation
and a link to the right place: theme files (replacing them changes your design),
injected database content, new administrator accounts, suspicious cron tasks, configuration
files, software with a known security hole. Files WordPress cannot boot without 
are never moved by the plugin.

#### File Integrity Checking

WordPress core files are verified against the official checksums from WordPress.
org, including unknown files inside wp-admin and wp-includes. WordPress.org plugins
are checked against their official checksums, and WordPress.org themes against the
official zip of the installed version: modified, missing and foreign files. Premium
and custom plugins and themes are checked against a baseline, with a file change
timeline from the second scan on.

A modified core or WordPress.org plugin file is repaired by WordPress itself: the
current file is backed up to quarantine first, then the WordPress updater reinstalls
the same installed version from WordPress.org, and the result is verified against
the official checksum. The plugin never writes into core, plugin or theme folders
and never edits files surgically; a failed reinstall puts the original back.

#### Severity and Confidence Are Separate

Severity is how bad a finding would be (Critical, High, Medium, Low, Info). Confidence
is how likely it is malicious. A known-signature match has 100% confidence; a high-
entropy blob on its own is only a contributing signal and is never called malware
by itself. Low and Info rows are notes, not threats, and never trigger an alert.
The Overview shows a protection ring that reflects the worst open finding, the verdict
in plain words and how many threats can be fixed with one click. Areas the scan 
could not fully verify (excluded paths, oversized files, an unreachable checksum
source) are listed as coverage gaps and never assumed clean.

#### Scheduled Malware Scans

Daily or weekly scans run around 02:00 site time. Scans run in short time-boxed 
batches (8 seconds by default, adjustable) driven by the open admin page, with a
WP-Cron fallback that keeps a scan going after you close the tab. Scans can be paused,
resumed and cancelled. One engine failing does not destroy the scan: the failed 
stage is recorded as a coverage gap and the scan moves on.

#### Works Without a DevDome Account

The local scan is complete without an account: integrity checks, code analysis, 
uploads, configuration, users, cron, database and persistence engines all run on
your server. Nothing is sent to DevDome before you connect. A site that never connected
runs on its built-in heuristics and says so in the coverage notes.

#### Optional DevDome Account

Connecting a free DevDome account adds:

 * The known-malware signature set: 90,000+ signatures from the Linux Malware Detect
   project, curated and served by DevDome. Byte-pattern signatures are stored on
   this site; the hash signatures stay on DevDome’s servers, and the SHA-256 and
   MD5 hashes of every scanned file are checked against them during each scan. Only
   hashes are sent, never file contents.
 * Security status for all your sites in one DevDome dashboard, and an email to 
   your account address when a scan finds critical or high threats, at most once
   per scan. Clean scans and low-severity findings send nothing.
 * Enhanced analysis (separate opt-in): short suspicious code fragments and a file-
   path hint are sent for a second opinion. The plugin attempts to redact common
   credential and secret patterns before transmission; no redactor can guarantee
   that every secret format is removed.

Not connected: the file hash check and signature updates stop. Byte-pattern signatures
already downloaded to this site keep matching after a disconnect.

#### Advanced Detection Details

 * PHP code is analysed with token-based static analysis: behavior chains such as
   request input to execution, decode to execution and remote download to disk write,
   not keyword matching.
 * Obfuscation: encoded blobs, entropy, chr() chains, hex escapes, nested decoders.
 * Uploads: executable files, disguised media (photo.jpg containing PHP), extension
   and content mismatches.
 * Configuration files: auto-prepend directives, cloaking redirects, PHP handlers
   in uploads.
 * Known-malware signatures: byte patterns matched on this site and file hashes 
   checked through your DevDome account.
 * Optionally, installed plugin, theme and WordPress versions against the WPVulnerability
   database, plus plugins closed on WordPress.org for a security issue.
 * Every finding carries human-readable evidence: the signals that fired, the line,
   a short snippet with secrets removed. A file is reported as quarantined only 
   after its database record is written; if the record fails, the file is put back.

#### Simple and Advanced Views

The Simple view shows the verdict, the one-click cleanup and Settings. The Advanced
view adds Threats with severity filters, search and bulk actions (Quarantine, Replace
with official file, Trust this exact content, Ignore, False positive, Reopen), File
Changes (last 90 days), Reinfection risks (Neutralize), Quarantine (Restore, Delete
permanently, Remove from list) and Scan History.

#### Multisite

On a network the scanner is a network administrator tool, because integrity checks,
quarantine and repair touch shared core and plugin files. Each site keeps its own
scan data; network deactivation clears scheduled scans on every site.

#### AI and Agent Support

On WordPress 6.9 and newer, DevDome Malware Scanner registers WordPress Abilities
covering the whole plugin: the security verdict with the fix plan, findings with
every filter, finding details with evidence, the diff against the official copy,
scan start, pause, resume, cancel, progress and history, One click fix, every per-
finding action (quarantine, repair, trust, false positive, ignore, acknowledge, 
reopen, neutralize a rogue administrator, cron task or planted file), restore, delete
or forget quarantined copies, the file change and event logs, settings (read and
update), the simple or advanced view and the signature download. Compatible AI agents
and MCP clients can discover and use these abilities when the site exposes them,
for example through the official WordPress MCP Adapter. Every ability runs the same
code as the plugin screens under the same administrator capability; permanent deletion
is marked destructive.

### External services

The plugin talks to the following services:

 1. WordPress.org APIs (api.wordpress.org, downloads.wordpress.org, core.svn.wordpress.
    org, plugins.svn.wordpress.org): used to fetch official core and plugin checksums,
    plugin directory status (whether an installed plugin was closed for a security 
    issue), the official zip of each installed WordPress.org theme (downloaded during
    a scan to verify the theme’s files) and, on explicit repair or comparison actions,
    official file copies. Only your WordPress version, locale, plugin and theme slugs
    and their versions are sent. Terms: https://wordpress.org/about/privacy/ Privacy:
    https://wordpress.org/about/privacy/
 2. DevDome Security API (analytics.devdome.com), only on a site connected to a DevDome
    account: (a) during each scan, the SHA-256 and MD5 hashes of every scanned file
    are checked against the DevDome database of 90,000+ known-malware signatures (hashes
    only, never file contents); (b) after every scan a summary (severity counts, the
    type, title, path and status of the top findings, the site’s wp-admin URL for the
    email button, the signature-set version and the plugin version) is sent so your
    DevDome dashboard shows the site’s security status and your account address gets
    an email when critical or high threats are found; (c) the byte-pattern signature
    set is delivered and updated through the account and stored on this site; the hash
    signatures stay on DevDome’s servers and are only ever queried by hash; (d) with
    the separate “Enhanced analysis” opt-in, short suspicious code fragments and a 
    file-path hint are sent for a second opinion; the plugin attempts to redact common
    credential and secret patterns before transmission, but no redactor can guarantee
    that every secret format is removed. Authentication is the site token the DevDome
    Dashboard provisioned on connect. Nothing is sent before you connect. Terms: https://
    devdome.com/terms-of-service Privacy: https://devdome.com/privacy-policy
 3. WPVulnerability API (www.wpvulnerability.net), only when you switch on the vulnerability
    check in Settings (off by default): during a scan, the slugs and versions of your
    installed plugins, themes and WordPress core are checked against this free public
    vulnerability database (EUPL v1.2). Only slugs and version numbers are sent. Terms:
    https://www.robotstxt.es/legal/ Privacy: https://www.wpvulnerability.com/privacy/

Signature data source (not a service the plugin contacts): the signature set is 
the Linux Malware Detect database (GPLv2, rfxn.com project), imported and served
by DevDome; the plugin never contacts rfxn.com. Project page: https://www.rfxn.com/
projects/linux-malware-detect/ License (GPLv2): https://www.gnu.org/licenses/old-
licenses/gpl-2.0.html

 1. Plugin catalog (devdome.com): the DevDome Dashboard inside wp-admin fetches the
    list of DevDome plugins (names, descriptions, logos, links, WordPress.org slugs)
    from `https://devdome.com/wp-plugins/catalog.json` at most once every 12 hours,
    and only after you have connected the site to a DevDome account; a site that is
    not connected never contacts devdome.com for it. Only the bundled core version 
    is sent in the request; no site or visitor data. Terms: https://devdome.com/terms-
    of-service Privacy: https://devdome.com/privacy-policy
 2. Connecting a DevDome account (optional): the DevDome Dashboard offers connecting
    a free DevDome account. Nothing is sent until you press the Connect button. If 
    you do connect, the shared library sends your site address, a generated site ID
    and a generated secret site token to `analytics.devdome.com/api/plugin/connect/
    start` and `/api/plugin/connect/claim` to link this site to your account; afterwards
    it confirms the connection with `api.devdome.com/plugin/account` at most once every
    twelve hours, and tells `api.devdome.com/plugin/disconnect` when you disconnect.
    Terms: https://devdome.com/terms-of-service Privacy: https://devdome.com/privacy-
    policy

The scanner does not require a DevDome account. WordPress.org verification services
may still be contacted as described above.

### Build

The admin stylesheet `assets/devdome-tools-tw.css` is compiled with Tailwind CSS
3.4.19 from the shipped source `src/tw.css`. No package.json or build tooling is
included in the distribution (WordPress.org review, September 2026). To reproduce
the file with the standalone Tailwind CLI (https://github.com/tailwindlabs/tailwindcss/
releases/tag/v3.4.19), run from the plugin folder:

    ```
    tailwindcss -i ./src/tw.css -o ./assets/devdome-tools-tw.css --minify --content "./admin/**/*.php,./assets/admin.js"
    ```

The content globs above are the plugin’s complete Tailwind configuration (no theme
extensions, no plugins). `assets/admin.js` is plain, unminified JavaScript and is
edited directly; there is no build step for it. The two inline header icons (bug
report, save) are from Lucide (ISC licence).

## Screenshots

[⌊Malware Scan Overview: threat status, severity counts and safe cleanup actions.⌉⌊
Malware Scan Overview: threat status, severity counts and safe cleanup actions.⌉[

Malware Scan Overview: threat status, severity counts and safe cleanup actions.

[⌊Malware and Backdoor Findings: review suspicious files, malicious code and the
evidence behind each finding.⌉⌊Malware and Backdoor Findings: review suspicious 
files, malicious code and the evidence behind each finding.⌉[

Malware and Backdoor Findings: review suspicious files, malicious code and the evidence
behind each finding.

[⌊File Changes: track created, modified, quarantined and repaired WordPress files
over time.⌉⌊File Changes: track created, modified, quarantined and repaired WordPress
files over time.⌉[

File Changes: track created, modified, quarantined and repaired WordPress files 
over time.

[⌊Reinfection Risks: find rogue admins, malicious cron jobs, must-use plugins and
drop-ins.⌉⌊Reinfection Risks: find rogue admins, malicious cron jobs, must-use plugins
and drop-ins.⌉[

Reinfection Risks: find rogue admins, malicious cron jobs, must-use plugins and 
drop-ins.

[⌊Malware Quarantine: safely quarantine suspicious files and restore them when needed.⌉⌊
Malware Quarantine: safely quarantine suspicious files and restore them when needed
.⌉[

Malware Quarantine: safely quarantine suspicious files and restore them when needed.

[⌊Scan History: review previous malware scans and detected threats.⌉⌊Scan History:
review previous malware scans and detected threats.⌉[

Scan History: review previous malware scans and detected threats.

[⌊Settings: optional DevDome account features, vulnerability check, scan limits 
and excluded paths.⌉⌊Settings: optional DevDome account features, vulnerability 
check, scan limits and excluded paths.⌉[

Settings: optional DevDome account features, vulnerability check, scan limits and
excluded paths.

## Installation

 1. Upload the plugin and activate it.
 2. Open Malware Scanner in the admin menu and press Scan Now.
 3. The first scan verifies integrity and seeds the file baseline; later scans add 
    the change timeline.
 4. Uninstalling removes the plugin’s tables, settings and scheduled tasks, including
    the quarantine table. Restore or delete quarantined files before uninstalling if
    you still need them.

## FAQ

### Does the plugin delete files?

No. Threats are moved to quarantine (a compressed, non-executable copy in the plugin’s
database table; the file itself is removed from disk) and can be restored from the
Quarantine tab at any time. The only deletion is the explicit Delete permanently
button on a quarantined file. Uninstalling the plugin removes its tables, settings
and scheduled tasks, including the quarantine table, so restore or delete quarantined
files first if you still need them.

### Do I need a DevDome account?

No. Every scanning engine runs on your own server: core, plugin and theme integrity,
code analysis, uploads, configuration files, users, cron, database and persistence.
Connecting a free account adds the 90,000+ known-malware signatures, the security
dashboard and the alert email. Without an account the signature set is never downloaded,
so there is no known-malware signature matching; the scanner relies on its heuristics
and reports that in the coverage notes. If you connect and later disconnect, the
byte-pattern signatures already on this site keep matching, but updates and the 
file hash check stop.

### Can a cleanup break my site?

It is built not to. Files WordPress cannot boot without are never quarantined. A
repair backs the current file up to quarantine and lets the WordPress updater reinstall
the same installed version from WordPress.org, verified against the official checksum
afterwards; if the reinstall fails, the original is put back. Theme files, database
content, user accounts, cron tasks and configuration files are never changed automatically.
Anything quarantined can be restored with one click.

### Why does the scan list coverage gaps?

Because unscanned is not the same as clean. Excluded paths, files above the deep
scan size limit, an unreachable checksum source, a file the previous scan could 
not finish and a stage that failed are all listed on the Overview, and findings 
on files that could not be rechecked are kept, not resolved.

### Does a scan slow down my site?

Scans run in short batches (8 seconds per request by default, 3 to 25 in Settings)
while the admin page is open, and continue through WP-Cron when it is closed. You
can pause or cancel at any time. The scan does use PHP time on your server, so lower
the batch budget on very constrained shared hosting.

### What is the difference between severity and confidence?

Severity is the potential impact (Critical, High, Medium, Low, Info). Confidence
is how likely the finding is malicious. A known-signature match has 100% confidence;
a high-entropy blob on its own is only a contributing signal and never called malware
by itself. Low and Info rows are notes, not threats, and never trigger an alert.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“DevDome Malware Scanner – Virus Scanner & Malware Removal” is open source software.
The following people have contributed to this plugin.

Contributors

 *   [ DevDome ](https://profiles.wordpress.org/devdome/)

[Translate “DevDome Malware Scanner – Virus Scanner & Malware Removal” into your language.](https://translate.wordpress.org/projects/wp-plugins/devdome-malware-scanner)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/devdome-malware-scanner/),
check out the [SVN repository](https://plugins.svn.wordpress.org/devdome-malware-scanner/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/devdome-malware-scanner/)
by [RSS](https://plugins.trac.wordpress.org/log/devdome-malware-scanner/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.0

 * WordPress Abilities API: 20 abilities covering every feature (verdict and fix
   plan, findings, evidence and diff, scan control, One click fix, every finding
   action incl. neutralize, quarantine restore and delete, logs, settings, view 
   mode, signatures). Empty-input abilities refuse unexpected arguments cleanly.

#### 1.1.0

 * WordPress Abilities API support (WordPress 6.9+): seven read and scan abilities
   for AI agents and MCP clients: get-security-summary, get-findings, get-finding-
   details, get-scan-progress, run-malware-scan, get-scan-history, get-quarantine.
   Cleanup actions are not exposed.

#### 1.0.3

 * New plugin icon (shield with magnifier) in the admin header, matching the WordPress.
   org listing.

#### 1.0.2

 * Quarantine no longer keeps files on disk: the file’s contents are stored compressed
   in the plugin’s own database table and the file is removed; restore verifies 
   the hash. Copies made by 1.0.1 are moved into the database on upgrade.
 * Local file reads go through the WordPress filesystem layer; temporary files and
   folders are removed through it too.
 * The database scanner never reads options that hold credentials (WordPress Connectors
   and any API key, token, secret or application password option).
 * Build tooling is no longer shipped in the distribution zip.

#### 1.0.1

 * Quarantine store moved to uploads/devdome-malware-scanner/quarantine (resolved
   through wp_upload_dir(), protected by deny rules and non-executable names).
 * Trusted repair now hands the write to the WordPress updater: core files are restored
   by reinstalling the running WordPress version, plugin files by reinstalling the
   same plugin version from WordPress.org. The plugin no longer writes into core
   or plugin folders.
 * Suite dashboard: installing a sibling plugin no longer activates it; activation
   is a separate click.

#### 1.0.0

 * First public release.
 * Scans WordPress core, WordPress.org plugins and themes against their official
   copies, and premium or custom code against a baseline with a file change timeline.
 * Token-based PHP analysis for behavior chains (request input to execution, decode
   to execution, remote download to disk write), obfuscation detection, uploads 
   inspection, configuration files, must-use plugins and drop-ins, administrator
   accounts, WP-Cron events and database injections.
 * Known-malware signatures through an optional DevDome account: byte patterns matched
   on the site, file hashes checked on the DevDome servers, only hashes ever sent.
 * One-click cleanup: quarantine (renamed, non-executable, restorable) and trusted
   repair through the WordPress updater (reinstall of the same version from WordPress.
   org), every action bound to the exact file contents the finding was made on.
 * Honest verdicts: unscanned, unreadable or partially scanned areas are never assumed
   clean, a failed or cancelled scan never replaces the last completed result, and
   coverage gaps are listed.
 * Reinfection risks tab: unknown administrators, must-use plugins, drop-ins and
   scheduled tasks that would let an attacker back in, with a Neutralize action;
   every finding expands to a detail panel with the facts and links that lead to
   the fix.
 * Time-boxed batches with pause, resume and cancel, a WP-Cron fallback, scheduled
   daily or weekly scans, Simple and Advanced views, and multisite support.

## Meta

 *  Version **1.2.0**
 *  Last updated **13 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [backdoor](https://wordpress.org/plugins/tags/backdoor/)[malware](https://wordpress.org/plugins/tags/malware/)
   [malware removal](https://wordpress.org/plugins/tags/malware-removal/)[malware scanner](https://wordpress.org/plugins/tags/malware-scanner/)
   [security](https://wordpress.org/plugins/tags/security/)
 *  [Advanced View](https://wordpress.org/plugins/devdome-malware-scanner/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/devdome-malware-scanner/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/devdome-malware-scanner/reviews/)

## Contributors

 *   [ DevDome ](https://profiles.wordpress.org/devdome/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/devdome-malware-scanner/)