| Security

Is your website running unpatched PHP?

On 21 October 2026 the people who make PHP published a fix for two flaws that let a stranger run their own code on a web server without logging in to anything. Most of what has been written about it is aimed at people who run servers. This is for everyone else - the person who owns a website, pays a hosting bill, and has never heard of PHP until today.

Nearly every website in the world sits on top of a handful of programs you never see. PHP is one of them. If your site runs WordPress, WooCommerce, Shopify’s older setups, Magento, Laravel, or almost any site with a contact form and a database behind it, PHP is doing the work between the visitor’s click and the page that comes back.

On 21 October 2026 that program was patched for two serious faults. This is what that means for you, in the order it matters.

What actually happened

Two separate bugs were found in PHP itself - not in WordPress, not in a plugin, not in anything your developer wrote. They were published together and nicknamed php2shell. Both carry a severity score of 9.2 out of 10, which is about as high as these ratings go.

The part that makes them serious is the phrase without logging in. Most website break-ins need something first: a weak password, an account, a form to abuse. These do not. A request sent to a vulnerable server can end with the attacker running their own commands on it, as the website itself.

Both the United States’ cyber security agency and the UK’s National Cyber Security Centre told organisations to update immediately. Attacks using it were seen within hours of publication, including from bots that simply sweep the whole internet looking for servers that have not been updated yet.

The fixed versions. PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35, all published on 21 October 2026. Anything below those on the same line still has the hole. Anything older than 8.2 receives no security fixes at all any more, which is a separate and larger problem.
The four patched PHP releases published on 21 October 2026 that fix the php2shell flaws
All four published on 21 October 2026. Anything below these on the same line still has the hole.

Why this is not something you did wrong

If you are on shared hosting - and most small business websites are - you do not choose which build of PHP your server runs. Your host does. You could have a perfectly maintained website, every plugin current, a long password on everything, and still be exposed, because the hole is underneath all of that.

That cuts both ways. It is not your fault, and it is also not something you can fix on your own. What you can do is find out where you stand and ask the right person to act.

How to check your own site in two minutes

There are three ways, and you only need one of them to work.

  • Your hosting control panel. Nearly every host has a PHP settings page - it may be called PHP Configuration, PHP Selector, or MultiPHP Manager. The version in use is shown there, usually as a dropdown you can change.
  • Our free website audit. Put your address into the free check and it reads the version your server announces, compares it against the fixed releases above, and tells you in plain words whether you are behind. It takes about twenty seconds and asks nothing of your hosting login.
  • Ask your host outright. One message: "which version of PHP is my account running, and is it patched against php2shell?" A good host answers that in a sentence.
One thing not to do. Plenty of older guides tell you to upload a small file containing phpinfo() and open it in your browser. It works, but it publishes a detailed map of your server to anyone who finds the file - and people scan for exactly that. If you ever do it, delete the file the minute you have your answer. The two methods above tell you the same thing without leaving anything behind.

What to do if you are behind

If your control panel offers a newer version, switching is usually one dropdown and a save. Stay on the same line where you can - if you are on 8.3.35, move to 8.3.36 rather than jumping to 8.4, because a bigger jump can break older code and you want this change to be boring.

If the patched version is not offered yet, your host has not built it. Send them this:

"Please update PHP on my account to 8.3.36 or newer. It contains the fixes for CVE-2026-109618 and CVE-2026-109619, published on 21 October 2026. If a patched build is not available yet, please tell me when it will be, and whether the server has the interim mitigation applied in the meantime."

Naming the two reference numbers matters. It moves your message from the pile marked "customer is worried about something" to the pile marked "customer is asking about the thing we are already working on", and you will get a straight answer faster.

The step almost everyone forgets

Updating the files is not the end of it. The program that is already running does not change when the files on disk do - it keeps running the old code until it is restarted. On a shared host that restart is the host’s job, and it usually happens as part of the update, but it is worth one line in your message: "please confirm the PHP workers were restarted after the update."

A site that shows a patched version number but was never restarted is still running the vulnerable code. It is the single most common way an update gets reported as done when it is not.

What does not help, however often it is suggested

When something like this is in the news, the usual advice gets repeated whether it applies or not. For this particular problem, none of the following changes anything:

  • Updating WordPress, your theme and your plugins. Worth doing on any ordinary week. It does nothing here - the fault is below your website, in the program that runs it.
  • Changing your passwords. Nothing was guessed. No login was involved.
  • A security plugin or a firewall in front of the site. These filter requests to your website. This problem is in the engine that handles the request in the first place.
  • Taking the site offline for a few days. It buys nothing except lost enquiries, unless your host has told you specifically that you have been compromised.

The only thing that closes it is a newer PHP. Everything else is motion.

Four pieces of common security advice that do nothing about the php2shell flaw, and the one thing that does
All four are worth doing on an ordinary week. None of them touches this, because the fault is below your website.

If your site was exposed for a while

Most sites will be fine. The published attack code works reliably only against particular combinations of server and version, and the window between publication and most hosts patching was short. But the flaw can also leak fragments of the server’s memory, and anything that was in memory at the time can be in those fragments - session tokens, keys for whatever your site connects to, the password your contact form uses to send email.

So if your host confirms your server was unpatched and reachable for any length of time, treat those as spent and change them. Not because something certainly happened, but because they are cheap to replace and expensive to be wrong about.

And if any of this is more than you want to deal with, that is reasonable - it is what a care plan is for. Somebody watches the version numbers so the first you hear of it is that it has already been handled.

| Questions

Questions people ask about this

What is php2shell?

It is the nickname for two faults in PHP, published on 21 October 2026 and catalogued as CVE-2026-109618 and CVE-2026-109619. Both allow someone to run their own code on a web server without logging in, and both are rated 9.2 out of 10 for severity. They are fixed in PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35.

How do I find out which PHP version my website uses?

The quickest ways are your hosting control panel, which shows it on the PHP settings page, or our free website audit, which reads the version your server announces and compares it with the patched releases. You can also simply ask your host.

Can I update PHP myself?

On shared hosting, usually only as far as your control panel lets you - you can switch between the versions your host has built, but you cannot build a new one. If the patched version is not in the list, the update has to come from your host.

Does updating WordPress or my plugins fix this?

No. The fault is in PHP itself, underneath WordPress and everything running on it. Keeping WordPress current is worth doing for other reasons, but it does not close this.

My site is just a few pages with no login. Am I still affected?

If your pages are served by PHP, yes - nothing about the attack needs your site to have accounts, forms or a shop. If your site is plain HTML with no PHP at all, this particular problem does not reach it.

How do I know the update actually worked?

Check the version again afterwards, and ask your host to confirm the PHP workers were restarted. A process that started before the update carries on running the old code until it is restarted, so a correct version number on its own is not proof.

| Keep reading

Related

WhatsApp us