=== Malsift – Malware Scanner & Cleanup ===
Contributors: blackspaceapplications
Tags: malware scanner, security, hacked site, malware removal, file integrity
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Find out whether your WordPress site has been hacked, and clean it up safely: files, admin accounts, API keys, spam posts and injected scripts.

== Description ==

Malsift checks a WordPress site the way an incident responder would after a hack, and puts every result on one dashboard.

**Files**

* Compares WordPress core files with the official WordPress.org checksums.
* Compares plugins from WordPress.org with their official releases and flags modified or extra files.
* Scans everything that cannot be verified (themes, premium and custom plugins, uploads, the site root) for malicious code: encoded loaders, code run from web requests, webshells, droppers and obfuscation.
* Finds hidden loader files, suspicious must-use plugins, look-alike plugin folders, PHP files in uploads, and injected .htaccess / .user.ini rules.

**Access**

* Lists administrator accounts created in the last 30 days.
* Reviews application passwords (API keys), flags names used by attackers, and lets you approve or revoke each key.

**Database**

* Finds casino and betting spam: betting brand names in titles, text or links, and bursts of posts created within minutes of each other.
* Finds obfuscated scripts and hidden iframes in settings, widgets and content, and a changed site address.
* Flags suspicious scheduled tasks.

**Hardening**

* Checks that PHP has the fixes for PHP2Shell (CVE-2026-109618, CVE-2026-109619).
* Shows whether the theme/plugin code editor is enabled (and can disable it), two-factor coverage for administrators, and pending updates.

**Clean-up**

* Restore modified core and WordPress.org plugin files with verified official copies.
* Quarantine suspicious files and folders. Quarantined files are stored compressed in a protected folder, cannot run, and can be restored.
* Reinstall WordPress core, and plugins and themes from WordPress.org, in one click. Changed and extra files are backed up to quarantine first.
* Revoke API keys, move spam posts to the trash or delete them permanently (large batches are processed in steps), remove suspicious scheduled tasks.
* "Fix all threats" applies only safe automatic fixes; anything that could break a plugin or theme is left for you to review.
* Daily automatic scan, optional email alerts, scan history and a printable report.

Every scan runs in short steps, so it works on shared hosting without timeouts.

== External services ==

Malsift connects to WordPress.org only:

* `api.wordpress.org` – official checksums for your WordPress version (the same service WordPress core uses).
* `downloads.wordpress.org` – official checksums for plugins hosted on WordPress.org.
* `core.svn.wordpress.org` and `plugins.svn.wordpress.org` – clean copies of individual files, downloaded only when you choose to restore a file. Every download is verified against the official checksum before it is written.
* `downloads.wordpress.org` – WordPress, plugin and theme packages, downloaded only when you choose to reinstall them, through WordPress's own updater.

Only your WordPress version, locale, and the slug and version of installed plugins are sent, as part of the request URL. No other site data, personal data or file contents are sent anywhere. WordPress.org terms: https://wordpress.org/about/privacy/

== Installation ==

1. Install and activate Malsift.
2. Open **Malsift** in the admin menu and click **Run full scan**.
3. Review threats and warnings. Use **Fix all threats** for the safe automatic fixes, then run a new scan to confirm the site is clean.

On multisite, Malsift is managed from the Network Admin.

== Frequently Asked Questions ==

= Will it delete my files? =

No file is deleted outright. Replaced and removed files go to quarantine, where you can restore them or delete them permanently.

= Can a scan break my site? =

Scanning only reads files. Fixes that could break a plugin or theme (for example quarantining a file that belongs to it) ask for confirmation first and are never part of "Fix all threats".

= Why are some plugins "not verified"? =

Premium, custom and outdated plugins have no official checksums. Malsift scans their files for malicious code instead.

= Does Malsift clean the database? =

It moves spam posts to the trash or deletes them permanently, and revokes API keys. Injected scripts in settings or content are shown for you to remove, because automatic edits to stored settings can break a site.

== Screenshots ==

1. Dashboard with checks, threats, warnings and scan history.

= Can I reinstall premium plugins? =

Only plugins and themes hosted on WordPress.org can be reinstalled automatically. For premium ones, reinstall from the vendor's zip file.

= Reinstall is disabled on my site =

Reinstalling needs file changes. If wp-config.php contains DISALLOW_FILE_MODS, remove it temporarily, reinstall, then add it back.

== Changelog ==

= 1.1.0 =
* New: Reinstall screen for WordPress core, plugins and themes from WordPress.org, with automatic backups of changed files.
* New: spam detection looks at post text and links, not just titles, and flags bursts of posts created within minutes.
* New: delete spam permanently, and an option for "Fix all threats" to do so.
* Large spam batches are removed in steps to avoid timeouts.

= 1.0.0 =
* First release.
