All posts

Booking essentials

PHP2Shell: What the PHP Vulnerability Means for Your Booking System

By Bruno Melani, founder of Gaplessly · 5 min read

A restaurant host stand before evening service, with a reservation book beside a tablet showing the Gaplessly floor plan for dinner.

The short answer

PHP2Shell is the name for two critical flaws in PHP, CVE-2026-109618 and CVE-2026-109619, patched on 21 October 2026.

They let an attacker run code on an unpatched server with no login.

Gaplessly is not affected: the booking app, booking pages and database do not run on PHP.

If your own website runs WordPress or another PHP system, ask your host to confirm PHP is on 8.2.35, 8.3.36, 8.4.27, 8.5.12 or later.

What PHP2Shell is

PHP is the programming language behind WordPress, Drupal, Joomla and a large share of small business websites. On 21 October 2026 the PHP project released emergency updates for two flaws in PHP itself, which researchers named PHP2Shell. Both are rated 9.2 out of 10 on the CVSS v4.0 scale.

  • CVE-2026-109618: a very large form submission can make PHP run out of memory partway through a request. The cleanup code then treats half-built data as valid, which corrupts memory.
  • CVE-2026-109619: state left over from one request can survive into the next request handled by the same PHP worker, after the memory behind it has been freed.

In both cases the attacker needs no account and no password. PHP reads the incoming request before the website's own code runs, so a login page, a security plugin or a firewall setting inside WordPress cannot stop it. Researchers found the flaws with the help of AI models, and exploitation attempts were seen before the patch was public.

Why it matters to a salon, clinic or restaurant

Most venues never think about PHP, because it sits underneath the website builder or the hosting plan, so an unpatched site can sit there for months without anyone noticing. Analysis cited on the PHP2Shell Wikipedia page counts about seven million companies running an affected PHP version, most of them with fewer than 50 staff. PHP also ships inside the hosting control panels many small hosts use, such as cPanel and Plesk.

An attacker who gets code running on your web server can change your pages, add a fake payment form, read what your contact forms collect, or use the server to attack others. The US NSA and the UK NCSC both told organisations that cannot patch straight away to take affected sites offline until they can.

What to check if your website runs on PHP

If your website runs on WordPress, Drupal, Joomla or a cPanel or Plesk hosting plan, it almost certainly runs PHP. These are the first fixed releases for each supported branch:

PHP2Shell: first fixed PHP release per branch

8.5

Fixed in
8.5.12
Status
Supported

8.4

Fixed in
8.4.27
Status
Supported

8.3

Fixed in
8.3.36
Status
Supported

8.2

Fixed in
8.2.35
Status
Supported

8.1, 8.0, 7.4

Fixed in
Source backports only
Status
Past end of life, check your host or vendor

Four steps, in order

  • Patch. On managed or shared hosting, email your host and ask which PHP version your site runs and whether it includes the 21 October fix. If you run your own server, install the updated PHP package.
  • Restart. Installing the package is not enough while old PHP workers are still running. Restart PHP-FPM, rebuild container images and replace running containers so the old code is gone from memory.
  • Filter at the edge, as a stopgap only. A firewall or proxy in front of the site, such as Cloudflare, can drop oversized and malformed form submissions. Setting changes passed around online, such as turning off session.upload_progress, do not fully protect you.
  • Take it offline if you cannot patch today. A short outage is cheaper than a compromised server.

Is Gaplessly affected by PHP2Shell?

No. Gaplessly is written in TypeScript and runs on Node.js. The dashboard, your booking page, the booking button on your website and the websites we build for venues are served from Vercel. Bookings, clients and payment records live in a Postgres database at Supabase. The background service that sends confirmations and reminders is a Node.js container. None of these contain PHP, so there is nothing in them for these two flaws to reach.

On 22 October 2026 we also went through the other software we run. One internal admin tool on our server is written in PHP. It is not part of the booking app and is not used to take bookings, and it was already on its vendor's patched release.

There is nothing to update in your Gaplessly account and nothing you need to do in the dashboard.

Keep taking bookings while you patch your website

If your WordPress site has to go offline for a few hours, your Gaplessly booking page stays up, because it is hosted by Gaplessly rather than on your web server. Share your booking link on Instagram, in your email signature and anywhere else guests find you, and they can keep booking as normal until your site is back.

Common questions

Is Gaplessly affected by PHP2Shell?

No. Gaplessly's app, booking pages and database do not run on PHP, so CVE-2026-109618 and CVE-2026-109619 do not apply to them.

Do I need to do anything in my Gaplessly account?

No. There is nothing to update or change in Gaplessly. If your own website runs on PHP, check that with your host separately.

Was any Gaplessly customer data exposed through PHP2Shell?

No. Booking and client data is stored in a Postgres database and served by Node.js, with no PHP in that path for these flaws to use.

My venue website runs on WordPress. Is it at risk?

It may be, until its PHP is updated. Ask your host whether your site runs PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 or later, or a vendor build with the 21 October fix.

Can guests still book if I take my website offline?

Yes. Your Gaplessly booking page is hosted by Gaplessly, so share the link directly while your website is down.

Does a firewall protect me from PHP2Shell?

Partly, and only for now. A firewall that drops oversized or malformed form submissions lowers the risk, but updating PHP is the only complete fix.

Do not take our word for it. Open the demo.

The real product, running with example businesses. No account, no card, and nothing to uninstall afterwards.

Open the live demo