How WP-Safety actually works.
Every score, risk rating, and verified exploit on this site is produced by a pipeline I run myself - no black-box vendor feed, no hand-curated spreadsheets. These pages explain the methodology end-to-end so you can verify our work instead of taking it on faith.
Four layers, one pipeline
Each layer feeds the next but runs independently - a failure in one doesn't corrupt the others. The detail pages below walk through each layer's internals.
How the data gets produced
Security score methodology
How we turn CVE history, patch velocity, AST code signals, and developer trust into a single 0–100 number per plugin and theme.
Plugin & theme detection
How we identify which WordPress plugins and themes are installed on any public site, using fingerprints drawn from CommonCrawl and direct crawls.
PoC verification pipeline
How vulnerabilities in the database get verified by an autonomous agent that stands up a disposable WordPress, reproduces the exploit, and captures it on video.
Individual subsystems, explained
One page per subsystem with the non-obvious design decisions called out. More land here as they're written.

Hi - Mika here. I built WP-Safety solo, so the methodology below is genuinely how it works, not a marketing sketch. The deep-dives are where I go long on the non-obvious details. Strictly optional - the plugin and CVE pages carry the full story without any of this.
PoC agent cascade
Autonomous CVE reproduction: lightweight-LLM → frontier-LLM cascade, ephemeral WordPress per task, independent frontier judge, Playwright evidence bundle, and the budget discipline that keeps the whole thing honest.
Hosting provider detection
Signal-first hosting attribution at CommonCrawl scale. Definitive vs supplementary fingerprints, confidence tiers, multi-signal resolution for edge-vs-origin ambiguity, and how the rule corpus is actually maintained.
Taint analysis
AST-level inter-procedural data-flow tracking across 7 superglobal sources, 31 sinks, and 47 sanitizers; the two-phase algorithm, the WordPress-specific special cases, and the edge cases it intentionally doesn't chase.
CommonCrawl pipeline
WAT-first narrowing, per-WARC-file byte-range indexing, co-located signing proxy, and the per-worker SQLite → merged DuckDB pattern that turn petabytes into tens of GB actually moved.
What you can check without trusting me
The methodology pages are worth reading, but a methodology you can't reproduce is just marketing. Here's what I ship so anyone can verify the pipeline's output independently. Weaponized material (full exploit payloads, full response bodies) is gated behind researcher verification - everyone else sees the non-weaponized skeleton that's enough to judge the method without publishing a working 0-click attack.
Playwright traces
Every verified CVE produces a ZIP trace openable in Playwright's own trace viewer. The public view shows timestamps, step names, and DOM state on benign surfaces; verified researchers get the full trace including exploit-payload frames and response bodies.
Replay scripts
Every verified PoC also produces a standalone Playwright script that re-runs the exploit against your own WordPress install. Public readers see the non-weaponized skeleton (target, flow, setup); verified researchers get the full executable version including payloads.
Fetched-at timestamps
Every plugin, theme, CVE, and provider page carries the timestamp its data was last refreshed. Staleness is legible; nothing claims to be fresher than it is.
Signal-level rationale
Every plugin-detection match on a site audit is accompanied by the exact signal (asset hash, REST route, generator tag) that triggered it. Scores enumerate every deduction. Detection is reviewable, not a black box.
Full exploit payloads and response bodies are only released to verified security researchers - the public view shows enough to evaluate the methodology without shipping a ready-to-paste 0-click attack for any CVE. Researcher access is free; verification is a lightweight identity check. If you're working on a legitimate engagement, email support@wp-safety.org with the subject "Researcher access request".
What's shipping next
A non-exhaustive view of the docs and methodology work that's in motion. These are the next deep-dives and dataset releases I'm actively working on.
- WIPFull local SVN mirror of WordPress.org pluginsReplaces the current on-demand
svn exportpath on the analyzer. Unlocks bulk version-pair sweeps for the ecosystem-scale static-analysis preprint. Covered on the taint-analysis scale section. - WIParXiv preprint: autonomous CVE reproduction at scaleMethods section is roughly the PoC agent cascade deep-dive; results section will cover reproducibility rate, per-CVE cost, and judge-override ratio.
- WIParXiv preprint: passive hosting attribution at crawl scaleMethods section is the provider-detection deep-dive; the dataset it describes will be published as the reproducibility artifact.
- NextPlugin source mirror deep-diveSeparate page covering the SVN mirror's own internals once it ships: sync cadence, storage layout, disaster recovery, historical revision queries.
- NextOpenAPI spec + API reference pageMachine-readable spec for
/api/v1/*plus a generated reference page under/docs/api. Unblocks bearer-token integrations without handholding. - IdeaPublic bulk dataset downloadsMonthly Parquet snapshots of the
plugin_risk_assessments, observation, and provider-detection datasets for researchers who want to run their own analyses. Scoping what's safe to publish vs what needs aggregation first.
Three hard commitments
I won't paywall the core data
Every CVE, every plugin score, every developer profile stays freely accessible. Sponsors fund continuous monitoring, alerting, and deeper audits - never the base truth.
Vendor listings can't influence scoring
Plugin vendors can sponsor WP-Safety. What they can't buy is a score boost, a hidden CVE, or a reshuffled ranking. Product tiers are listed on /sponsors; the scoring engine doesn't know who's paying.
I won't hide my methodology
If I can't explain how a score was computed, I shouldn't publish it. These pages are the written-down version of that commitment.