Count the doors
WordPress vs Next.js Security: Where the Attacks Actually Come From
In 2025, security researchers logged 11,334 new vulnerabilities in the WordPress ecosystem. Six were in WordPress itself. The rest came from the plugins and themes people add to it, which tells you most of what you need to know about where WordPress gets attacked, and what Next.js changes.
October 9, 2026 · 10 min read
The short answer
WordPress core is well maintained; most WordPress hacks come through plugins and themes, weak logins, xmlrpc.php, outdated installs and pirated themes. A Next.js site has no public admin panel and no code installed on the live server, which removes most of those doors. It still has risks: npm dependencies, framework bugs, API routes and leaked secrets.
On this page
- Eleven thousand holes, six of them in core
- Five ways attackers get into a WordPress site
- The five-hour problem with weekly updates
- What can still go wrong on a Next.js site
- Why the two attack surfaces have different shapes
- How Aegis and Argus keep watch on an Athena site
- Staying on WordPress? Harden the doors you keep
- When security alone justifies a rebuild
Eleven thousand holes, six of them in core
The best public numbers come from Patchstack, a company that runs a large WordPress vulnerability database and bug bounty. Its State of WordPress Security in 2026 report, covering 2025, is worth reading in full. The figures below are Patchstack's, quoted from that report.
- 11,334 new vulnerabilities were found in the WordPress ecosystem in 2025, a 42% increase on 2024.
- 91% were in plugins and 9% in themes. Only 6 were reported in WordPress core.
- 46% had no fix from the developer by the time they were publicly disclosed.
- 1,966 (17%) were rated high severity, the kind likely to be exploited in automated mass attacks.
- For the most heavily targeted vulnerabilities, the weighted median time from disclosure to first exploit was 5 hours.
- Premium components were no safer: 76% of the vulnerabilities found in them were exploitable in real attacks, and premium products had three times more known exploited vulnerabilities than free ones.
Read that list fairly. It does not say WordPress is insecure. It says the WordPress core team does a good job and the extension economy around it is enormous, uneven and fast-moving. Your site's risk is the sum of every plugin and theme you have installed, how quickly each vendor patches, and how quickly you apply the patches.
Five ways attackers get into a WordPress site
Plugins and themes with known holes
This is the main road, per the numbers above. Even well-run vendors ship fixes regularly: Avada 7.16.2, released September 30, 2026, patched six vulnerabilities including cross-site scripting in form submissions. Kadence's Shop Kit add-on drew a Patchstack advisory for a high-priority SQL injection in versions up to 3.0.6. A patch only protects sites that install it, and a lapsed license often means the patch never arrives.
Password guessing at the login page
Every WordPress site has its login form at the same well-known address, so bots try passwords against all of them, all day. The official WordPress hardening guide recommends strong passwords and two-step authentication for exactly this reason. Neither is on by default for every user.
xmlrpc.php, the side door
XML-RPC lets apps manage a WordPress site remotely, and the xmlrpc_enabled filter defaults to on. In 2015, Sucuri documented attackers using its system.multicall method to try hundreds of passwords in a single request, slipping past tools that counted one request as one attempt. WordPress 4.4 blunted that trick, but the endpoint remains a common target, and most sites that do not use it would lose nothing by blocking it.
Installs nobody updates
When a fix is released, the details of the flaw become public too, and the hardening guide is blunt that older versions are what attackers go after. The abandoned brochure site, the staging copy left online, the plugin whose author moved on: each is a version number waiting to be matched against a public list.
Nulled themes and plugins
A nulled theme is a pirated premium theme with the license check removed. It often comes with a passenger. Sucuri found a webshell inside a nulled theme that could disable security plugins and send database credentials to a remote server, and Patchstack's analysis of the WP-VCD malware shows it spreading through free downloads of premium plugins and injecting itself into other themes' functions.php files. The money saved on a license is usually spent on malware removal.
The five-hour problem with weekly updates
Put two of Patchstack's numbers side by side. The most targeted flaws are exploited a median of five hours after disclosure. Nearly half of disclosed flaws have no fix at that moment. Now picture the typical maintenance routine: someone logs in on Monday, sees eleven updates waiting, applies them one click at a time on the live site, and hopes nothing breaks. Even a diligent owner is days behind the attackers, not hours.
There are good tools for closing the gap. Firewalls with virtual patching, from Patchstack and others, block known exploits before a vendor ships a fix. Automatic plugin updates help when they do not break the layout. But Patchstack also tested standard hosting-level defenses against real exploits and reports that only 26% of attacks were blocked. Security on WordPress is a process you run forever, layered on top of a stack you did not write. That is not a reason to panic. It is a reason to count your plugins and to pay someone to watch them. Our hosting and maintenance plans include tested updates, off-server backups and security monitoring.
Every plugin is a stranger you have handed a key to the building. Most of them are honest. All of them lose keys.
What can still go wrong on a Next.js site
No stack is invulnerable, and anyone who tells you a Next.js site cannot be hacked is selling something. The attack surface is smaller and different. Here is what it actually contains, with real incidents.
Dependencies
A Next.js project pulls in npm packages, and npm has been attacked. In September 2025 the Shai-Hulud worm spread through compromised maintainer accounts, and GitHub removed more than 500 compromised packages. Pinned versions and a lockfile limit exposure; they do not eliminate it.
Framework bugs
Next.js has had serious flaws. CVE-2025-29927 let attackers bypass middleware checks on self-hosted sites until patched in March 2025. In December 2025 React disclosed CVE-2025-55182, a maximum-severity remote code execution bug in Server Components that affected Next.js.
API routes and Server Actions
Any route that accepts data is a public endpoint. The Next.js docs tell developers to treat Server Actions like public API endpoints and to check permissions on every call. A form handler without validation is as dangerous here as anywhere.
Secrets and settings
Environment variables prefixed NEXT_PUBLIC_ are inlined into the JavaScript sent to browsers. Put an API key there by mistake and it is published. Open preview deployments, loose CORS rules and over-privileged tokens are configuration errors, not framework flaws, but they count.
The difference is how fixes travel. When CVE-2025-55182 landed, a patched Next.js version was available, and every site that used it needed one dependency bump, a build and a deploy. On a WordPress stack the equivalent event can mean waiting on several vendors, each with its own release date and license server.
The third option
Athena CMS, with AI agents on staff.
Not a theme and not a blank Next.js repo. The content system we put behind every custom site: plain fields, a real preview, every version kept, and AI agents that handle the chores a plugin only nags you about.
- PicassoImages
- ApolloSite analysis
- AresCompetitor watch
- PrometheusContent holes
- AtlasPage depth and structure
- DelphiAI search visibility
and 12 more agents. Two come with Athena; the rest are monthly add-ons.

Why the two attack surfaces have different shapes
| WordPress theme + plugins | Next.js build | |
|---|---|---|
| Public admin login | Yes, at a predictable address on the same server | None on the public site; editing happens elsewhere |
| Who can add code | Anyone with an admin login, live, in two clicks | Developers, through review and a build |
| Where new code runs first | On the production site | In a build and a preview deployment |
| Writable code on the server | wp-content holds PHP that can be modified | Deploys replace the whole build; no plugin folder to infect |
| Database on a page view | Usually, unless a cache answers | Not for prerendered pages |
| Third-party code paths | Every active plugin and theme, each with endpoints | Dependencies compiled into one tested build |
| Patch path after a CVE | One update per vendor, if the license is current | Bump the version, build, test, deploy |
| Typical failure | Malware, spam pages, injected redirects | Leaked secrets, unchecked endpoints, stale dependencies |
The pattern is the same one that runs through every row of our WordPress vs Next.js comparison: WordPress lets many parties change a live system, and Next.js funnels every change through one door that has a lock and a log. The plugin dependency comparison explains how that plays out beyond security, and theme pages like Divi vs Next.js and Flatsome vs Next.js show it for specific stacks.
How Aegis and Argus keep watch on an Athena site
A smaller attack surface still needs someone watching it. On the sites we build, Athena CMS assigns that job to AI agents. Aegis checks every day for intrusions and backdoors. Argus watches the edges where trouble shows first: failing forms, broken links, slow pages and certificates about to expire. Neither replaces a developer applying a framework patch. They make sure someone knows the same day when something looks wrong, instead of when a customer phones about a strange redirect.
There is also less for an intruder to reach. Editors log in to Athena, not to a dashboard bolted onto the public website, and their edits change content, not code. Every version is kept, so a bad change can be rolled back. Compare that with the WordPress approach of a security plugin, a firewall plugin, a backup plugin and a login-limiting plugin, each with its own settings page and renewal date. The longer version of that comparison is at Athena vs WordPress.
Staying on WordPress? Harden the doors you keep
Plenty of businesses should stay on WordPress, and a well-kept WordPress site is a hard target. These steps follow directly from where the attacks come from.
- 1
Cut the plugin list
Every plugin you remove is a vulnerability you cannot have, and usually a faster page too. Delete deactivated ones as well; their files still sit on the server.
- 2
Keep every license current
Premium themes and builders update through their license. An expired key means the next security fix never arrives.
- 3
Lock the login
Strong unique passwords, two-step authentication for every admin, and as few admin accounts as the business can manage with.
- 4
Block xmlrpc.php if nothing uses it
Check first: some apps and integrations rely on it. If none do, block it at the server or firewall.
- 5
Install only from the source
WordPress.org or the vendor's own site. Never a nulled copy, however convincing the download page looks.
- 6
Back up off the server
A backup stored on the hacked server is not a backup. Keep copies elsewhere and test a restore.
If the site is already showing spam pages in Google, unknown admin users or redirects to strange domains, stop tuning and start cleaning: our WordPress malware removal service finds the backdoor as well as the symptom. Browser warnings have their own fix page at not secure warning, and if Google has already dropped you, see Google deindexed my website.
When security alone justifies a rebuild
Security is rarely the only reason to leave WordPress, but it is often the one that ends the debate. The site has been cleaned twice this year. The builder license lapsed and nobody wants to renew it. The plugin count passed thirty and nobody remembers what half of them do. At that point, each cleanup buys a few months, and the bill keeps coming.
Keep WordPress and harden it when
- The site runs fewer than a dozen well-supported plugins
- Someone applies updates within days, not months
- Licenses are current and the theme is actively maintained
- There is no customer data or payment flow on the server
Move to Next.js when
- You have been hacked before and the root cause was never clear
- The stack depends on abandoned plugins or a theme you cannot update
- You handle member logins, customer records or payments
- Nobody on staff wants to own weekly plugin updates
A rebuild through our WordPress rebuild in Next.js service moves your content as data into fresh templates, so PHP backdoors hiding in the old theme folder have nothing to ride along in. The steps and timing are laid out under WordPress to Next.js and migration cost. For the other rows people weigh alongside security, see WordPress vs Next.js SEO and Core Web Vitals.
Questions people ask before they call
WordPress core is not the weak point: Patchstack counted only 6 core vulnerabilities in 2025 against 11,334 across the ecosystem. The risk comes from plugins, themes, weak logins and missed updates. A lean, current, well-watched WordPress site is a reasonable target to defend. A sprawling, neglected one is an easy win for automated attacks.
Yes. Framework bugs, compromised npm packages, unprotected API routes and leaked secrets have all caused real incidents, including CVE-2025-29927 and CVE-2025-55182 in 2025. What Next.js removes is the public admin panel and live code installs, which are the routes behind most WordPress compromises. It still needs patching and monitoring.
If nothing you use depends on it, blocking it removes a common target. Some mobile apps, publishing tools and integrations do use XML-RPC, so check before you block. Doing it at the server or firewall stops requests before WordPress has to process them.
Not by Patchstack's count. In its 2026 report, 76% of the vulnerabilities found in premium components were exploitable in real attacks, and premium products had three times more known exploited vulnerabilities than free ones. Paying for a plugin buys support and features, not immunity. What helps is fewer plugins and faster updates.
It helps: firewalls, login limits and malware scanning catch a lot. It cannot patch a vulnerable plugin for you, and it is one more plugin to keep updated. Patchstack's testing found standard hosting-level defenses blocked only 26% of attacks, which is why updates and a short plugin list matter more than any single tool.
Keep reading
- The plugin economyWordPress Plugins vs Next.js: What Plugin Dependency Really CostsHow WordPress plugins load, update, expire and collide, what each plugin category becomes in a Next.js build, and which jobs Athena's AI agents take over.
- Theme vs frameworkAstra vs Next.js: A Light Theme, a Heavy Stack and a Custom BuildAstra vs Next.js, row by row: the 2026 AI bundles, the 3-site Pro cap, Elementor and Spectra, real failure modes, and when Astra is still the smart buy.
- New owner, old questionKadence vs Next.js: A Block-First Theme Under New Owners, Against Custom CodeKadence vs Next.js after the Liquid Web shake-up: Kadence Blocks, the new $99 to $499 plans, known issues, and which businesses should stay or move.
- WordPress at its leanestGeneratePress vs Next.js: The Fairest Fight WordPress Can OfferGeneratePress vs Next.js, argued fairly: a sub-10kb theme, a $59 license for 500 sites, the coming template engine, and where a custom build still wins.
- A Customizer theme, weighedBlocksy vs Next.js: A Great Free Theme Against a Site With No Plugins at AllBlocksy vs Next.js compared on 22 rows: the free header builder, Companion and Pro, lifetime licenses, the 2.1.5x regressions and when to stay put.
- The Elementor stack, weighedHello Elementor vs Next.js: The Empty Theme and the Builder That Fills ItHello Elementor vs Next.js on 22 rows: the 6KB vs 30KB claims, Theme Builder dependency, Elementor's real weight, and when the builder is the right call.
- Everything in WordPress vs Next.jsSee the section
Find out how exposed your site is
Send us your site address. We will check versions, plugins, licenses and login exposure, and tell you whether hardening is enough or whether the stack itself is the risk.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.
