We ran WPScan against a live in-scope WordPress target. The automated scan returned three INFO-level findings. No plugins detected. No themes detected. No CVEs.

The manual analysis layer returned seven component identifications, exact version numbers, and a clean CVE bill of health.

That gap — three versus seven — isn’t a scanner failure. It’s a story about what professional-grade security looks like from both sides of the fence.

The Setup

  • Tool: WPScan 3.8.28 (API token enabled — 4 of 25 daily requests used)
  • Mode: Passive (default)
  • Target: Live in-scope WordPress target under a managed bug bounty programme
  • Scan time: 22 seconds

What WPScan Found

FindingTypeSeverity
Cloudflare CDN detected (CF-Ray header, DUB PoP)InfrastructureINFO
referrer-policy: same-originSecurity HeaderINFO
/robots.txt accessiblePath DiscoveryINFO

0 plugins detected. 0 themes detected. 0 CVEs mapped.

Three INFO findings in 22 seconds with an API token is effectively blind. If the goal was “find a CVE in this WordPress site,” the automated scan returned nothing to work with.

Why WPScan Came Up Empty

This is the part worth understanding.

WP Engine — the managed WordPress hosting platform — strips WordPress version fingerprints from all HTTP responses. The X-Powered-By header is gone. Version parameters in HTML source are suppressed. Generator meta tags are removed.

WPScan’s CVE lookup works by matching detected component versions against its vulnerability database. No version detected — no CVE lookup happens. Even with the API token, the database is irrelevant if there’s nothing to query against.

This is deliberate hardening, not a configuration oversight. WP Engine’s fingerprint suppression is a documented security feature. The security team did their job.

WPScan passive mode was designed for standard WordPress installs. Against managed WordPress hosting with version suppression active, it needs aggressive mode (--enumerate ap --plugins-detection aggressive) — which fires 20,000+ requests. That’s not passive recon; it’s a full active scan, and it’s too noisy for the type of assessment this was.

The counter-intuitive takeaway: when a passive scanner finds nothing, it doesn’t mean nothing is there. It might mean the target is hardened enough to defeat fingerprinting.

What the Manual Analysis Layer Found

From HTTP source analysis run during a prior session:

ComponentVersionSourceCVE Status
WordPress6.9 (series now at 6.9.4)CSS ver= parameter in source0 known CVEs in 6.9.x series
Elementor (free)3.35.5Plugin asset pathsCurrent: 4.0.5 — 0 CVEs
Elementor Pro3.35.1Plugin asset paths0 CVEs — last patched CVE fixed in 3.29.1
Yoast SEO27.0Source metadata0 security CVEs
Wordfenceversion hiddenPlugin-specific error handlingSecurity plugin — version suppressed
Hello Elementor (theme)3.4.6Theme asset pathsCurrent version
WP Engine SSOmu-pluginServer-specific login redirectsMU-plugin — not enumerable by WPScan

Seven components identified. WPScan found zero.

The ai_gap_fill=True flag in the SecurityClaw result record tells the full story: every gap the automated scanner left, the manual analysis layer filled.

The Elementor Pro Version Question

Elementor Pro 3.35.1 deserves a direct answer, because the version number looks old.

The last known CVE in Elementor Pro was patched in version 3.29.1 — everything from 3.30.0 onwards is clean. 3.35.1 was verified against both Patchstack and the WPScan vulnerability database on 2026-05-02: 0 known CVEs.

The wrinkle: Elementor Pro 3.35.1 is now two major versions behind current (4.0.4, released April 2026). The 4.0 line is a significant rewrite — Atomic Forms, new Interactions system, performance improvements. The site would need a major upgrade to reach current.

That’s not a security vulnerability. It’s just the natural upgrade lag that affects most production WordPress sites. “Running behind on major versions” is a different risk profile from “running a version with known CVEs.” In this case, it’s the former.

The Wordfence Detection

SecurityClaw detected a Wordfence installation via plugin-specific error handling behaviour. The version was suppressed — consistent with Wordfence’s own security guidance (exposing your WAF version is suboptimal).

The presence of Wordfence on top of WP Engine’s native hardening and Cloudflare’s CDN layer means this is a site running three separate security layers: edge CDN (Cloudflare), application firewall (Wordfence), and managed hosting hardening (WP Engine). That’s defence in depth.

What SecurityClaw Does with a Partial Result

The campaign record shows result=partial, ai_gap_fill=True. That means:

  1. Automated scan ran, returned limited output
  2. Manual analysis layer ran, identified the components WPScan missed
  3. CVE lookup ran against every identified component
  4. Result: 0 CVEs on a heavily layered, well-maintained WordPress installation

A partial result isn’t a failure. It’s an honest assessment of what a passive automated scan can reach on a hardened target, plus everything the manual layer adds on top. The combination gives you the full picture. Neither alone is enough.

When WPScan Passive Mode Is the Right Tool

WPScan passive mode is appropriate for:

  • Quickly checking a standard WordPress install during a pentest
  • CI/CD integration to catch newly introduced vulnerable plugins
  • Environments where active scanning is explicitly off-limits

WPScan passive mode is not appropriate for:

  • Enterprise WordPress on managed hosting (WP Engine, Kinsta, Pressable)
  • Sites with Cloudflare or similar CDN/WAF in front
  • Situations where you need confident component identification

For those cases, passive mode is a starting point, not the answer. The gap between “WPScan found 0 plugins” and “the site is running Elementor Pro 3.35.1, Wordfence, and WP Engine SSO” is filled by manual source analysis.

The CVE Status Summary

After full analysis (automated + manual):

  • WordPress 6.9.x — 0 CVEs
  • Elementor Pro 3.35.1 — 0 CVEs (last patched CVE: 3.29.1)
  • Elementor free 3.35.5 — 0 CVEs
  • Yoast SEO 27.0 — 0 CVEs
  • Wordfence — version suppressed, no CVE mapping possible

Clean result. This is a well-maintained site with active security investment.

The Takeaway

WPScan passive mode found three things. Manual analysis found seven. Together they tell you more than either alone.

The story isn’t “WPScan failed.” The story is that when a scanner comes up empty against a hardened target, you need the human layer to fill the gap. A scanner that finds nothing against WP Engine is doing exactly what a passive scanner should do. A security assessment that stops at the scanner output is incomplete.

SecurityClaw runs both.