Skip to main content

Checksum Verification

Overview

WordPress maintains official checksums (MD5 hashes) of every core file in a known-good state. WP-CLI can compare your live files against those checksums to detect unauthorized modifications, malware injections, and corrupted installs.

Why Checksum Verification Matters​

WordPress core files should never change between updates. If any core file differs from the official hash:

  • A server compromise may have injected malicious code
  • A plugin or theme may have wrongly modified a core file
  • The WordPress install may be corrupted

Checksum verification is the fastest way to confirm core file integrity without manually reviewing every PHP file.

What Gets Checked​

TargetCommandSource
WordPress corewp core verify-checksumswordpress.org API
Pluginswp plugin verify-checksumswordpress.org plugin repo
Child themes (limited)Manual via wp evalN/A

Workflow: Full Integrity Scan​

#!/bin/bash
# integrity-scan.sh

echo "=== WordPress Integrity Check ==="
echo "Site: $(wp option get siteurl)"
echo "Date: $(date)"
echo ""

# 1. Verify core
echo "--- Core Checksums ---"
wp core verify-checksums && echo "✓ Core OK" || echo "✗ Core FAILED"
echo ""

# 2. Verify all plugins from wordpress.org
echo "--- Plugin Checksums ---"
for plugin in $(wp plugin list --status=active --field=name); do
wp plugin verify-checksums "$plugin" 2>/dev/null && \
echo " ✓ $plugin" || echo " ✗ $plugin — MISMATCH"
done

Next Steps​