Panellicense

Enable Imunify360 WAF for WordPress: virtual patching explained

WAF for WordPress ships free with every Imunify360 and ImunifyAV licence — it blocks known plugin and theme exploits at the request level before the vulnerable code runs.

7 min readUpdated 2026-08-11imunify360 · wordpress · waf · virtual-patching
schema: HowToschema: FAQPage

WAF for WordPress is a second, separate firewall layer that Imunify shipped in 2026, on top of the server-level ModSecurity WAF that already comes with Imunify360 Unlimited. It doesn't inspect Apache or LiteSpeed traffic generically — it runs inside each WordPress install via a companion plugin, matches requests against a ruleset built specifically for known plugin and theme CVEs, and blocks the exploit attempt before it reaches the vulnerable code. The plugin itself stays outdated; the request just never lands.

This matters on shared cPanel and Plesk hosts because plugin updates are the customer's problem, not yours, and customers don't patch. A CVE drops for a page builder or a WooCommerce add-on, proof-of-concept exploit code is public within days, and a chunk of your fleet is running the vulnerable version six months later. WAF for WordPress closes that gap without you touching a single site's files.

How it differs from the WAF you already have

If you've read tuning the Imunify360 WAF for false positives, you already know Imunify360 Unlimited ships a Comodo/OWASP ModSecurity ruleset at the web server layer. WAF for WordPress is not that ruleset with more rules — it's a different engine entirely:

Server-level WAF (ModSecurity)WAF for WordPress
Runs atApache/LiteSpeed, before any PHPInside WordPress, via the Imunify Security plugin
Rule scopeGeneric SQLi/XSS/RCE patternsPer-CVE rules for specific plugins and themes
Applies toEvery site on the serverWordPress installs with the plugin active
Included withImunify360 Unlimited onlyBoth ImunifyAV and Imunify360 Unlimited
Blocking behaviourBlocks on Imunify360Blocks on Imunify360; log-only on ImunifyAV/AV+

That last row is the one worth knowing before you promise a customer anything: on an ImunifyAV server, WAF for WordPress detects and logs a matching exploit attempt but does not block it — you need Imunify360 Unlimited for the request to actually get a 403. It's also distinct from ProactiveDefense, which watches PHP execution behaviour rather than matching known CVE signatures at the request layer — the two run independently and catch different things.

Version requirements

Check these before rolling it out on a fleet — the feature silently does nothing if the agent is too old:

  • WordPress 5.0.0 or later on the site itself
  • PHP 5.6 or later
  • Imunify360 8.12.5-3 or later, or ImunifyAV/AV+ 8.7.1-2 or later
  • Imunify Security WordPress plugin wp-3.0.1-2 or later

Run imunify360-agent version on the server to check your agent build. If it's older than 8.12.5-3, update the package through your OS package manager (yum update imunify360 or apt-get upgrade imunify360) before enabling the plugin — see the Imunify360 agent CLI reference if you're unfamiliar with the update commands.

Enable it server-wide

The plugin isn't distributed through the WordPress.org repository — it's pushed from the Imunify control panel, and it installs itself into every active WordPress site on the server in one pass.

cPanel/WHM

  1. Open Imunify360 (or ImunifyAV) from WHM or the account's cPanel.
  2. Go to Settings → General.
  3. Find the WordPress Plugin section.
  4. Check Install WordPress plugin.
  5. Save.

The agent installs the plugin into every WordPress docroot it can detect in the background — no per-account action needed, and no site downtime. On a large fleet the rollout can take a few hours to reach every site.

Plesk

The same toggle lives under Imunify360 → Settings → General → WordPress Plugin in the Plesk extension. Enabling it triggers the same fleet-wide background install.

CLI

The same setting is exposed through the agent, useful for scripting a fleet rollout instead of clicking through WHM per server:

imunify360-agent config update '{"WORDPRESS" : {"security_plugin_enabled": true}}'

This writes the config change and kicks off the same background install as the UI toggle. Confirm the agent picked up the change with the general health check from the Imunify360 CLI reference:

imunify360-agent rstatus

Verify it's active on a site

The most reliable check is from the WordPress admin side: once the background install reaches a site, the owner sees an Imunify Security entry in their dashboard sidebar, showing whether WAF for WordPress is active and a feed of any blocked or logged exploit attempts for that install specifically. If it's missing after a few hours, confirm the plugin file itself landed in wp-content/plugins/ on that account, and re-check imunify360-agent rstatus for a stalled rollout.

Reading incidents

Blocked and logged exploit attempts show up in two places:

  • WHM/cPanel: Imunify360 → Incidents, filtered by Plugin = "WordPress WAF" — the same incident log used for the ModSecurity WAF and ProactiveDefense, just tagged differently.
  • WordPress admin: the Imunify Security plugin's own incident feed, scoped to that one site, useful for handing a customer proof their site was under attack without giving them shell access.

Each incident logs the CVE or plugin/theme name the rule targets, the request path, and the source IP — the same triage flow as the incidents covered in the Imunify360 CLI reference applies here.

What it won't catch

Rule coverage depends on Imunify's team writing a rule for a given CVE, and they're explicit that it's not exhaustive — new critical CVEs typically get a rule within 24 hours of disclosure, but a zero-day with no public CVE yet has no rule to match against. It also only protects plugins and themes it has a written rule for; an obscure or custom-built plugin with a vulnerability nobody's reported publicly gets no coverage. This is a mitigation layer on top of keeping plugins updated, not a replacement for it — pair it with ProactiveDefense for behavioural coverage of the gaps.

Next steps

Does WAF for WordPress cost extra on Imunify360?+
No. It's bundled free into the Imunify Security WordPress plugin for both ImunifyAV and Imunify360 Unlimited licences — there's no separate SKU or upgrade required.
Does ImunifyAV block exploits with WAF for WordPress, or just log them?+
ImunifyAV and ImunifyAV+ run the same detection but only log matches — they don't block the request. Blocking (HTTP 403) requires Imunify360 Unlimited.
Do I need to install the plugin on every WordPress site manually?+
No. Enabling the toggle in Imunify360 or ImunifyAV settings pushes the plugin to every detected WordPress install on the server automatically. New sites are picked up on the next scheduled scan.
Will WAF for WordPress conflict with the existing ModSecurity WAF?+
No, they run independently at different layers — ModSecurity inspects the request before PHP starts, WAF for WordPress runs inside the WordPress plugin against CVE-specific rules. Both can be active at once with no conflict.
Does virtual patching actually fix the vulnerable plugin code?+
No. The vulnerable plugin or theme files are untouched — WAF for WordPress only blocks requests that match a known exploit pattern for that vulnerability. The site owner still needs to update the plugin eventually.
compare
Imunify360 vs Wordfence for WordPress hosting providers
A server-wide security suite the host controls vs a per-site plugin the customer buys — how Imunify360 and Wordfence actually differ for a shared WordPress fleet.
8 min read
how to
Install Imunify360 on a cPanel and CloudLinux server
A 20-minute install of Imunify360 on a cPanel + CloudLinux node — license activation, the installer, Proactive Defense, and the three default settings to change before letting customers log in.
7 min read
how to
Imunify360 agent CLI: the commands every host actually uses
A working reference for imunify360-agent — status, scans, IP lists, false-positive submission, ProactiveDefense, and the diagnostics commands that resolve 90% of tickets.
7 min read
how to
Run Imunify360 behind Cloudflare without losing visitor IPs
Cloudflare proxying makes every request look like it came from a Cloudflare edge IP, breaking Imunify360's brute-force and WAF detection. Restore real visitor IPs and wire up the Cloudflare integration the right way.
8 min read
how to
Imunify360 Reputation Management: blacklist monitoring
Imunify360's Reputation Management flags which customer domains have landed on phishing and safe-browsing blacklists — here's how it works, how to read the table, and what to fix.
6 min read
how to
Install Imunify360 on Plesk — what's different from cPanel
Imunify360 on Plesk uses the same agent as the cPanel build, but the install path, ModSecurity handoff, and Fail2Ban interaction are different. Here's the working setup.
8 min read
Switch in an afternoon

Switch from your current reseller — free.

We migrate active cPanel, Plesk, LiteSpeed and CloudLinux licenses from any reseller. We prorate the first month so you never pay twice, and your customers see zero downtime during the swap.