Safeguard
Security Guides•

Does wp plugin verify-checksums prove a plugin is safe?

wp plugin verify-checksums shows whether plugin files match WordPress.org copies. It finds tampering, not vulnerabilities, and skips non-directory plugins.

Safeguard Security Team
3 min read

No. The check confirms that plugin files on disk match the checksums WordPress.org holds for that release. A match means the files were not altered after download. It says nothing about whether the release itself has a vulnerability, and it cannot verify plugins that are not hosted on WordPress.org.

What the command does

The WP-CLI handbook describes the command as verifying plugin files against WordPress.org's checksums. You can name one or more plugins, or ask for all of them. A strict option makes even soft changes, such as edits to the readme file, count as errors. You can also verify against a specific version and choose table, JSON, CSV, YAML or count output.

wp plugin verify-checksums --all

A passing run prints a success line saying how many plugins were verified.

What a pass tells you

  • The files you hold are byte for byte what WordPress.org published for that version.
  • Nobody edited a file on the server after install, for example to inject code.

That is useful after a suspected compromise, because modified plugin files are a common sign of tampering.

What a pass does not tell you

QuestionDoes the check answer it?
Were files changed on the server?Yes
Does this release contain a known vulnerability?No
Was the published release itself malicious?No
Is this plugin still maintained?No
Is a premium or custom plugin intact?No, there is no WordPress.org copy to compare against

If an attacker publishes a bad release through a compromised author account, the files on your server will match that bad release. The checksum check would pass.

A sensible place for it in your routine

  1. Run it after every incident or suspected intrusion on a client site.
  2. Run it on a schedule as a cheap tamper alarm, and alert on any failure.
  3. Pair it with a vulnerability check against your plugin inventory, since that is the question this command cannot answer.
  4. Keep a separate review for premium and custom plugins, which fall outside it.

One caution from the handbook: an insecure option retries downloads without certificate validation if the TLS handshake fails, and the handbook notes this makes the request vulnerable to a man in the middle attack. Do not use it in automation.

Core files have a sibling command, covered in our post on verifying WordPress core files.

Example reading of a result

Suppose the check passes for seven plugins and fails for one. Do not assume the failing one is the compromised one. A developer may have patched it by hand years ago. Compare the changed files with a clean copy of the same version and read the difference. If the change is unexplained, treat the site as suspect, restore the plugin from a clean download, and rotate credentials. If the change is a documented patch, move it into a proper child plugin or a vendor fix so the check can run clean from now on.

Quick check

Will it flag a plugin I edited on purpose?

Yes. Changed files fail verification, which is why direct edits to plugin code are a poor habit on client sites.

Does it work on premium plugins?

Not through WordPress.org checksums. Verify those another way, such as comparing against the vendor download.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.