WordPress Security: Why Your Site Is a Target and How to Stay Safe

06/08/2026
Posted in Security
06/08/2026 Dorothy Fiedor

One night on August, dozens of WordPress sites woke up with a brand new administrator. Nobody had invited him. His name started with “w2s” and trailed off into a string of random characters, the same pattern on one site after another. The owners had no idea. In the morning everything loaded fine, orders came in, life went on. Someone else just happened to be holding the keys now.

That picture, a stranger with admin rights sitting quietly inside your site, is the whole reason WordPress Security isn’t a luxury or an overreaction. It belongs to maintenance, the same way brakes belong to a car. Nobody praises brakes for working. Everybody understands them the second they stop.

So how did the attackers get in? Most of those sites were still running WordPress 6.9.4. That branch carried a pair of flaws that researchers at Searchlight Cyber later disclosed together under the name wp2shell. On their own, neither was catastrophic. Chained, they let an anonymous request slip past WordPress core’s own checks and end up running code on the server. No login, no vulnerable plugin, nothing unusual about the setup.

WordPress published the fix on 17 July 2026, shipping versions 6.9.5, 7.0.2 and 6.8.6 on the same day and switching on forced automatic updates because of how serious it was. The patch existed. It was free and it was available. Sites that took it slept soundly. Sites that had somehow missed it got hit about two and a half weeks later, and what the exploit did was very specific. It created an administrator account, then uploaded a plugin of its own. The account was the “w2s” user. The plugin was the payload.

Here’s the first and maybe most uncomfortable lesson. In the overwhelming majority of cases, attackers aren’t breaking something new. They’re walking through something old that we never got around to fixing, often weeks after the fix was sitting there waiting.

For anyone who wants the references, the two flaws are catalogued as CVE-2026-63030, a route confusion issue in the REST API batch endpoint, and CVE-2026-60137, an SQL injection reachable through WP_Query. The full chain affects WordPress 6.9.0 through 6.9.4 and 7.0.0 through 7.0.1. Versions 6.8.5 and earlier were never exposed to it. Both entries were added to the US government’s Known Exploited Vulnerabilities catalogue within days, which is the official way of saying this was not theoretical.

What WordPress Security Actually Means?

When most people hear WordPress Security, they picture a plugin. You install it, switch it on, see a green checkmark, and feel covered. The reality is a little more mundane and a lot more interesting.

Securing a WordPress site isn’t a tool. It’s a process that runs all the time, and it wears three faces: prevention, detection, and response.

  1. Prevention means closing the doors before anyone tries them. An updated core, updated plugins, strong passwords, sensible user permissions.
  2. Detection means knowing something’s happening the moment it happens, not three months later when Google has already added your site to a blocklist.
  3. Response means having a plan for what you do when you get hit, because sooner or later something will try its luck.

A plugin covers mostly the first piece, and only part of it. It doesn’t run the update for you. It doesn’t check whether something stayed behind after a break-in. And it definitely doesn’t answer the phone at three in the morning. Real WordPress Security is all of those pieces at once, not just the one with the green checkmark.

How Attackers Get In?

Here’s something that trips a lot of people up, so let’s be clear about it. Most attacks on WordPress aren’t personal. Nobody’s sitting there hating you specifically. These are automated programs, bots, that sweep millions of sites a day looking for the same known gap. Your site wasn’t chosen. It just matched the profile.

The ways they find a way in are few and repetitive:

  • Old versions of the core and plugins. A forgotten plugin that hasn’t been updated in months is an open window on the ground floor.
  • Weak or reused passwords. The same one on your site, your email, and some forum that leaked last year.
  • Hidden admin accounts, like the “w2s” from our story. Malicious code creates them, and they often rebuild themselves if you simply delete them.
  • Malicious code that sends your visitors off to phishing pages, or serves malware to everyone except you, so you never catch on.
  • Spam links buried inside your pages, slowly eating away at your search ranking.
  • On stores, skimmers that lift card details in the middle of checkout.

The thread running through all of it is simple. None of these attacks needs a genius. It just needs us to have left a crack open.

The Mistake Almost Everyone Makes After a Hack

Back to the sites with “w2s.” Everyone’s instinct, the moment they spot the unknown administrator, is reasonable. Delete the user, update WordPress, done. And yes, those steps are correct and necessary. They’re just not enough.

Updating closes the hole. It does not prove that nobody came through it while it was open, and it does nothing about what they left behind on the way out. In the wp2shell campaigns, attackers uploaded plugins to keep their access, dropped web shells, harvested administrator usernames and email addresses, and went looking for database credentials and the secret keys in wp-config.php. On some of the sites we cleaned, there was also a backdoor sitting on the login page, reachable through a parameter no normal visitor would ever type. None of that disappears when you click update.

That’s why a proper cleanup doesn’t stop at the obvious. After you delete the user and update, you need to:

  • Rotate the secret keys in the configuration file, so any stolen login sessions get cancelled.
  • Change the database password.
  • Find and delete every plugin or file the attacker planted. On one of the sites, the attacker’s folder was locked down so tightly that it took root access on the server to remove it.
  • Check for reinfection across every suspect spot before you say, with any confidence, that the site is clean.

That gap, between “looks clean” and “is clean,” is the whole point of serious WordPress Security. One approach buys you two quiet days. The other buys you actual peace of mind.

If you want to check your own site for this particular episode, the signs are well documented. Look for administrator accounts you did not create, especially with a w2s prefix, and for odd addresses on them such as anything ending in wp2shell.invalid or wp2shell.local. Look for plugin folders with random characters in the name that nobody installed. And look through your access logs for requests to the batch endpoint at /wp-json/batch/v1, which is where the chain began. Worth knowing: the scripted attack created that administrator account on every attempt, whether it went on to succeed or not. Finding one on its own is not a false alarm.

WordPress Security in Five Steps

If you want a simple way to think about your site’s safety, borrow the logic the professionals use. Five steps, in order.

  1. Inventory. Before you protect anything, you have to know what you’ve got and what’s exposed. Which version you run, which plugins, which users exist, what’s already broken.
  2. Hardening. This is where you close the doors. Updates, two-factor authentication on login, tighter permissions so each person has only what they need, correct server settings.
  3. Monitoring. You put something in place to watch for you while you sleep. Tracking changes to your files, alerts for suspicious logins, a check for unusual traffic.
  4. Response. When something hits, you know what you do. Isolate, clean, pull out every hidden foothold, get delisted from blocklists.
  5. Recovery. You’ve got backups that actually work, you’ve tested them, and you can bring the site back to a working state without panic.

None of these moves is exotic. The hard part isn’t understanding them. It’s doing them steadily, every month, without forgetting the moment everything looks calm. Attackers, after all, don’t take a holiday because your site looks quiet.

WordPress Security for Online Stores: Why WooCommerce Sites Are a Special Target

If your site is a store, the stakes climb sharply. A WooCommerce shop doesn’t just hold content. It holds orders, customer details, addresses, and it passes transactions through. To an attacker, that’s a far more tempting target than a simple blog.

The sneakiest attack on a store is what people call skimming. Malicious code slips quietly into the checkout page and copies the card details the moment a customer types them, before the payment even goes through. The store keeps working. Orders keep arriving. And in the background, your customers’ details are walking out the door to a stranger. It can take weeks before anyone notices, usually once the complaints start.

That’s why WordPress Security on a store isn’t the same animal as on a personal site. It calls for tighter monitoring of your files, regular checks of the code on checkout, and real attention to every plugin that touches the payment flow. A forgotten, vulnerable plugin on a blog is an annoyance. On your store, it can turn into a data breach with your name on it.

What It Costs to Ignore

Plenty of small site owners figure they’ve got nothing worth stealing, so why would anyone bother. The flaw in that thinking is that it assumes you’re the target. You’re not. Your resources are. Your server for sending spam, your traffic for redirecting elsewhere, the reputation of your domain for hiding the next attack.

The consequences, when they land, are very specific:

  • Downtime turns into lost sales and customers who don’t come back.
  • Google flags your site as possibly hacked, and the rankings you built over years vanish in days.
  • If customer data leaks, you walk into a legal mess with disclosure duties and possible fines.
  • Your reputation pays the bill, and that one doesn’t come back with a backup.

Good WordPress Security costs you time and attention. Bad WordPress Security costs a great deal more. You just pay later, and all at once.

 

Real WordPress Security

A Plugin, or Real WordPress Security?

I’m not telling you to throw out the tools. A good security plugin does useful work. It gives you a firewall, scans for known malicious code, helps with login. The question is what you think it hands you.

A plugin is a tool, not a plan. It’s like having an alarm at home with nobody to answer it when it goes off. The alarm alerts you. It doesn’t catch the burglar, clean up the mess, or change the lock that got broken.

Same goes for managed hosting, another mix-up I hear all the time. Hosting protects the server, not necessarily your own site sitting on top of it. A vulnerable plugin or a weak password is still on you. Most breaches come in through the application, not the infrastructure underneath.

Real WordPress Security is the tools plus someone who reads them, understands what they’re saying, and acts. Whether that someone is you, with discipline and time, or a person you pay to do it, that’s exactly the gap that has to be filled.

Practical Steps You Can Take Today

If you’ve read this far and want to do something concrete in the next hour, start here. You don’t need an expert for any of them.

  1. Update your core, your plugins, and your theme to the latest version. If you’re worried something might break, take a backup first.
  2. Check the list of users with administrator rights. If you spot someone you don’t recognize, especially with an odd name, don’t rush to delete them. It’s a sign something bigger may be going on underneath.
  3. Turn on two-factor authentication for login. It’s one of the simplest and most effective measures there is.
  4. Delete plugins and themes you don’t use. What doesn’t run can’t hurt you. What sits forgotten leaves you exposed.
  5. Make sure you’ve got automatic backups stored off the server, and test restoring them at least once, for real.
  6. Use a unique, strong password for your site, your email, and your hosting account. Never the same one across three places.
  7. Treat WordPress Security as a habit, not a one time chore. Set a monthly reminder for updates and a quick look over the site.

None of these moves will make you untouchable. Together, though, they raise the bar high enough that the automated bots would rather move on to the next, easier victim. And most of the time, that’s the whole goal.

Your Site Is Alive, Not Furniture

The story with “w2s” was nothing special. It wasn’t the first, and it won’t be the last. It repeats with a different name and a different version every few months, and every time, the sites that pay the price are the ones that had fallen a step behind.

The good news is that the step is in your hands. WordPress Security doesn’t ask you to become a cybersecurity expert. It asks you to treat your site like something alive that needs care, not like something you set up once and forget. Attackers are counting on you to forget. The simplest, most free defense you’ve got is to not do them the favor.

Dorothy Fiedor

Dorothy Fiedor

Founder of FDesign, Senior WordPress and WooCommerce Engineer

Dorothy Fiedor is a senior WordPress and WooCommerce engineer in Athens and the founder of FDesign. She designs, builds and runs production stores end to end, from the UX and the custom plugins to WooCommerce HPOS migrations, ERP and marketplace integrations, and the managed hosting behind them, including PHP-FPM worker tuning and MariaDB upgrades. Since 2020 she has also been the in-house WordPress engineer for a multi-brand supplement e-commerce group.

Her background is in design. She trained in graphic design in Athens and at the Academy of Fine Arts in Katowice, produced multilingual publications for EU institutions, and moved to the web in 2015, building WordPress sites, hand-coded HTML email for major brands such as Papastratos and BMW, and Magento front ends for car parts retailers, while growing FDesign alongside. That route from design into engineering is why her work covers the interface, the code and the infrastructure as one job.

BA in Graphic Design, Technological Educational Institute of Athens. Polish native speaker, fluent in Greek and English.

WordPress and WooCommerce WooCommerce HPOS WordPress Coding Standards Plugin Check PHP and MariaDB PHP-FPM Managed hosting and Plesk Cloudflare WPML JSON-LD structured data GA4 and Tag Manager Python and REST APIs Figma and Adobe CC