WPSecureOps

Glossary · File change

A plugin file has been modified

Wordfence type
pluginFile
Category
File change
Severity
Medium to High

A plugin's file no longer matches the copy published on WordPress.org.

The alert usually reads
Modified plugin file: wp-content/plugins/akismet/akismet.php

What Wordfence found

For plugins hosted on WordPress.org, Wordfence compares the installed files against the published release and reports differences.

Why it matters

Injected code in a plugin file survives everything except reinstalling that plugin, and it runs on every request. The benign explanation — someone edited a plugin directly to change behaviour — is also a real problem, because the edit disappears at the next update and takes the behaviour with it.

How to fix it

  1. 1Inspect the change before acting.
  2. 2For an unexplained difference, reinstall the plugin cleanly: delete it and install fresh, rather than pressing update.
  3. 3If the edit was deliberate, reimplement it through a hook in a small custom plugin.
  4. 4Re-scan to confirm the file now matches.

Common questions

Nobody here edits plugin files. How can one be modified?
Then something else did: malware appending itself to an existing plugin (a favourite hiding place, since plugin code changes legitimately on every update and blends), a developer's quick fix from years ago, or a build process that strips comments. 'No human edited it' narrows the list to exactly the possibilities worth checking.
Does updating the plugin clear the modification?
Yes — an update replaces the plugin's files wholesale, which both removes the modification and clears the finding. That is also the cheapest clean-up when the diff looks malicious: update (or reinstall the same version), then verify the scan comes back clean. If modifications reappear, the writer is still active.
Why does Wordfence not check my premium plugins?
The comparison needs a published reference copy, and WordPress.org only hosts free plugins. Premium plugin files are invisible to this check — so absence of findings there is absence of coverage, not a clean bill. For premium code, your integrity reference is the vendor's original ZIP.

How WPSecureOps treats it

The connector reports this as pluginFile. WPSecureOps files it under File change and bands it by the numeric severity Wordfence assigns, so findings of this kind from every site you manage arrive in one queue rather than one email per site. Titles and descriptions are stripped of HTML and the site's absolute path is replaced before anything leaves the server.

Primary references

Product behaviour and remediation guidance were checked against these primary sources.

  1. Wordfence: How to interpret scan results
  2. WordPress Developer Resources: Verify core file checksums with WP-CLI
  3. Wordfence: If your site is hacked

See this finding in context