WordPress security scanner
Look at your WordPress site the way an attacker does
Enter a domain. We detect the WordPress core, plugins and themes in use, match each against vulnerability records and tell you what to fix first. Nothing to install; nothing is written to the site.
Sample report · fictional domain and plugins
anadolu-lojistik.example
3 confirmed vulnerabilities in 1 component, 1 actively exploited.
Security score 50/100 · Weak
- Confirmed vulnerabilities
- 3
- Actively exploited
- 1
- Possible (unconfirmed)
- 3
- Configuration issues
- 2
Do these first
Sample Form: upgrade to 5.9.2
3 confirmed vulnerabilities · 1 actively exploited · 2 need no login · currently 5.3.1
Sample Counter: closed on wordpress.org; remove or replace it
security issue · no updates will come
Turn off directory listing
The uploads folder shows its file list to anyone.
Plugins
- 3 confirmed
Sample Form
sample-form · 5.3.1
- closed on wordpress.org
Sample Counter
sample-counter · 1.2.0
- 3 possible records
Sample Gallery
sample-gallery · version not readable
- no known issues in this version
Sample Cache
sample-cache · 2.4.0
- plugins
- 12,568
- themes
- 1,455
- mapped vulnerability records
- 29,920
- records with public exploit code
- 1,224
Directory updated daily · newest record Oct 3, 2026
How it works
01
Finds components
Extracts the running plugins, theme and core version from the homepage and the REST API. A handful of read-only requests; no password guessing, nothing changed.
02
Matches vulnerabilities
Compares every component with our WordPress vulnerability directory. When the version is readable, only records affecting that version count as “confirmed”; otherwise they are “possible”.
03
Puts them in order
Actively exploited, login-free and weaponized issues come first; it names the version to upgrade to and how to close each setting. For a plugin with no fix or one that was closed, it does not say “update”.
Which one is actually urgent?
A vulnerability count alone sets no priority. We answer three questions for every record.
Who can exploit it?
A vulnerability that needs no login is not the same as one only an administrator can use. Every record shows the access it requires: unauthenticated, subscriber+, contributor+, admin. The label is read from the record's own text; when the text is silent we fall back to CVSS and never invent a role name.
14,995 records in the directory can be exploited without logging in.
Is there a fix?
If the record lists the plugin's latest wordpress.org release as affected, updating does not close the hole. In that case we say “deactivate or replace” instead of “upgrade”.
974 components have at least one vulnerability with no official fix seen.
Is the plugin still listed?
A plugin closed by wordpress.org gets no more updates; installed copies keep running and stay vulnerable. If your site runs a closed plugin, we say so, with the closure date and reason.
5,278 components with known vulnerabilities are closed on wordpress.org.
What we check
The standard scan is open to everyone. The deep scan also probes sensitive file paths, so it only runs on a domain whose ownership you have verified in your account.
The standard scan requests at most 10 URLs, the deep scan at most 48. All of them are read-only (GET) requests; the content of a sensitive file is never stored, only its path appears in the report.
Core version
The version is matched against WordPress core vulnerabilities, branch by branch.
Standard
Plugins and their versions
Every plugin brings its own vulnerabilities; a readable version makes the match exact.
Standard
Themes
The active theme and child theme are matched against the same directory.
Standard
wordpress.org status
Was the plugin removed from the directory, is the installed version behind the latest, does WordPress.org mark the core version as insecure?
Standard
HTTPS redirect
A site left on HTTP carries session cookies and passwords in clear text.
Standard
Username exposure (REST API and author archive)
Leaked usernames make password-guessing attacks easier.
Standard
User registration
With open registration, plugin flaws that need a “subscriber” become exploitable from outside.
Standard
XML-RPC
Allows many password guesses per request and pingback abuse.
Standard
readme.html
A leftover install file that tells what the site runs.
Standard
Directory listing (uploads)
Every uploaded file can be browsed without guessing URLs.
Standard
Pinning plugin and theme versions
readme.txt and style.css are read; “possible” records become “confirmed” or “clean”.
Deep
wp-config backups
Can the database password and secret keys be downloaded?
Deep
debug.log
Contains file paths, queries and sometimes personal data.
Deep
Database backup and backup folders
All content and user password hashes; are backup-plugin folders listed?
Deep
.env and .git
Can passwords, API keys and source code be downloaded?
Deep
Who it is for
Site owner
Am I safe, and what should I do?
- Not a technical dump: a to-do list ordered by urgency
- The version to upgrade to for each plugin
- A “how to fix” note for every setting
Agencies and freelancers
All client sites in one place
- Shareable report link: send it straight to the client
- Continuous watching: 3 watch rows on the free account, 50 on Pro, 500 on Team
- Check a plugin in the directory before installing: closed? fix available?
- Subscribe to the RSS feed of the plugins you use
Security team
With evidence, without exaggeration
- CVE ID, CVSS, CISA KEV, exploit maturity and required access level on every record
- “Confirmed” and “possible” are counted separately; possible records never affect the score
- Requests identify as NoroxiWP and show up in your logs
Plugin and theme directory
Check before you install: every plugin and theme's known vulnerabilities, active exploitation and patched version.
Ready-made lists5,278 closed plugins 974 plugins with no fix seen 14,995 records need no login
Highest-risk plugins
All plugins64 records · 12 with exploit code
Arigato Autoresponder and Newsletter
bft-autoresponder
17 records · 10 with exploit code
canto
9 records · 6 with exploit code
w3-total-cache
15 records · 6 with exploit code
37 records · 6 with exploit code
68 records · 5 with exploit code
Highest-risk themes
All themesnewscrunch
2 records · 2 with exploit code
xstore
12 records · 1 with exploit code
realhomes
5 records · 1 with exploit code
realestate-7
5 records · 1 with exploit code
bricks
3 records · 1 with exploit code
nexter
2 records · 1 with exploit code
Open data and feeds
Use our WordPress vulnerability data in your own tooling. Fields derived by Noroxi (component mapping, access level, fix status) are CC BY 4.0: with attribution, commercial use is fine. No output contains exploit code or links.
- Open the feed
RSS feed
Newest plugin and theme vulnerabilities; each item carries the component, severity, required access and fix status. Add ?access=unauth for login-free issues only; per-plugin feeds are on each component page.
- Open the JSON
JSON feed
The same content for machines. No key needed; responses are cached for 15 minutes.
- API docs
Component lookup (API and MCP)
“Is this version of this plugin affected, who can exploit it, was the plugin closed?” With a free API key or the MCP tool; no scan is run.
- Open data
Full directory
Daily dump: component ↔ CVE mapping, access level, fixed version and wordpress.org status. CSV and Parquet.
What is free, what paid plans add
Scanning, reports and the directory are free. Paid plans add more frequent re-scans and more sites.
Without an account you can still run 3 passive scans per day.
| Free account | Pro$29/mo | Team$99/mo | |
|---|---|---|---|
| Scan quota | 10 per hour | 60 per hour | 200 per hour |
| Verified domains eligible for deep scan | 1 | 15 | 100 |
| Re-scan of watched sites | weekly | daily | daily |
| Watch rows (shared with all tools) | 3 | 50 | 500 |
| Shareable report and directory | included | included | included |
Limits and what we do not do
- A passive scan only sees components the site reveals; plugins that leave no trace on the front end are not listed.
- Records for a component whose version cannot be read stay “possible” and never affect the score; we do not guess versions.
- No password guessing, no form submissions, no exploitation attempts. We infer a vulnerability from the version, not by exploiting it.
- If a firewall returns a challenge page, the report says so; we do not impersonate a browser.
- Government domains are never scanned in any mode.
- The access level is read from the record's text, otherwise from CVSS; when neither says, it stays “unknown” and no discount is applied.
- “No fix seen” is only stated when the record explicitly lists the latest wordpress.org release as affected. No such claim is made for components that are not on wordpress.org (paid ones); status data is refreshed regularly and the check date is shown on the component page.
- This is not a penetration test: business logic, authorization and custom-code flaws are out of scope.
Frequently asked
- Can the scan harm or slow down my site?
- No. The standard scan sends one read-only request to each of at most 10 URLs, no different from a visitor opening a few pages. It writes nothing and never tries to log in.
- Can I scan someone else's site?
- The standard scan only requests URLs anyone can open in a browser, so it does not require ownership. The deep scan, which probes sensitive file paths, only runs on a domain you have verified.
- What is the difference between “confirmed” and “possible”?
- Confirmed: we read the component's version and it falls inside the affected range. Possible: the component is present but its version could not be read; you may not be affected. Possible records do not lower the score.
- I hide version numbers. What will you see?
- Less. If we see a component but cannot read its version, its records are shown as “possible”. Once you verify the domain, the deep scan reads the version from the plugin's own readme.txt.
- Are results stored, and who can see them?
- Every scan is saved and gets an unguessable link. Only someone with the link can open the report; report pages are closed to search engines.
- How do I hear about a new vulnerability?
- Add the site to your watch list. We re-scan weekly on the free account and daily on Pro and Team; if the number of confirmed vulnerabilities rises, you get a notification in your account and in your daily email digest when it is enabled.
- I do not want my site scanned.
- Requests come with the NoroxiWP user agent; you can block that name on your server or firewall. A site that blocks it returns no scan result.
- Where do labels like “unauthenticated” or “subscriber+” come from?
- From the record's own text. WordPress vulnerability records usually state the required role (e.g. “subscriber-level access and above”). When the text names no role we use the CVSS “privileges required” field and only say “login required” or “high privilege”; we do not invent a role name. If registration is open on your site, “subscriber+” issues are moved up as issues anyone can try.
- The report says “closed on wordpress.org”. What should I do?
- The plugin was removed from the official directory (the report shows when and why) and no longer receives updates. It keeps running on your site but its vulnerabilities will not be fixed. Remove it or move to a maintained alternative.
- Is there an API, feed or MCP tool?
- Yes. Keyless RSS and JSON feeds carry the newest records. With an API key, /api/v1/wordpress?host= returns the scan and /api/v1/wordpress/component the plugin-and-version lookup; the MCP server offers the same as wordpress_scan and wordpress_component. The full directory is in the open data dump.
One scan is not enough
New records land in the directory every day; a site that is clean today may not be tomorrow. Watch your site and we will tell you when its status changes.