Building21 October 20268 min read

Critical PHP flaws: check your hosting and apply the fix

By the Forenta team · updated 21 October 2026

In this article

Your website can look perfectly healthy while the software behind it needs an emergency security update. Updating a page, a plugin or an AI-generated frontend does not tell you whether the PHP engine serving a different part of the site has been patched.

On 21 October 2026, PHP released security updates for CVE-2026-109618 and CVE-2026-109619. The fixes are available now. Both flaws can allow unauthenticated remote code execution: an attacker may be able to run code without logging in. Check the PHP service behind each domain and obtain proof that the fix is active.¹

Updated 21 October 2026 at 17:01 CEST after the official security release. The earlier 13:28 CEST edition described the pre-announcement. This warning does not establish a worldwide outage or that your website has been compromised.

What PHP is, and why your AI-built app may still depend on it

PHP is a programming language executed on a server. The server runs PHP code and returns a page or an API response to the visitor. WordPress uses it. A modern frontend can also call an older PHP backend, a WordPress content API or a separate administration tool. The public page does not show the full chain.⁵ ¹⁰

W3Techs measured PHP on 69.3 percent of websites whose server-side programming language it could identify on 21 October 2026. That is a large installed base. It is not 69.3 percent of all websites and it is not a count of vulnerable or compromised sites.⁴

Find the PHP runtime owner

69.3%

PHP share among websites whose server-side language W3Techs could identify. This measures use, not vulnerability or compromise.

W3Techs · 21 October 2026

Select your setup. This tool does not inspect your site or establish its security status.

Inventory first

List domains, subdomains and connected backends. Ask the operator which services actually execute PHP. Missing access means unknown, not a clean bill of health.

Locate
Actual runtime
Verify
Vendor patch evidence
Respond
Patch or contain, then retest
Copyable first task for your coding agent

Start read-only. Inventory PHP in our deployed domains, backends and provider configuration. For every PHP service, report the owner, active web-serving build, exposure and vendor-confirmed patch evidence for CVE-2026-109618 and CVE-2026-109619. Mark missing access as unknown. Do not print secrets, run exploit requests or change production. Propose a patch or targeted isolation plan and stop for approval.

Sources: PHP, CERT-EU, WordPress, TransIP, Vercel and Supabase. Checked 21 October 2026.

Which PHP services need the fix?

The official advisory covers PHP installations serving web requests, including PHP-FPM, Apache mod_php, php-cgi, FrankenPHP and LiteSpeed. PHP identifies mod_php as the highest-risk configuration. A login page does not establish protection: the maintainers describe a demonstrated attack path before application code runs.¹

Reuters brought the warning into international news on 21 October. It reported a Cloudflare executive describing early attacks, while the Australian agency said it was not aware of active exploitation at its observation time. Those are attributed observations, not a verified worldwide attack count. Our practical advice does not depend on declaring that every site is already under attack.³

Start with the running service, not the name on your invoice

List the domains and subdomains your product uses. Include the marketing site, blog, admin area, customer portal, API and old staging sites that remain reachable. For each one, identify where requests actually go and who maintains that service. A missing result belongs under unknown, not safe.

Your setupWhere to checkEvidence to request
WordPress or shared PHP hostingWordPress Site Health and the hosting panelThe active web PHP build for each domain, plus provider confirmation that the fix is active.
TransIP shared hostingWebhosting > your domain > Geavanceerd > PHP-instellingenSelected PHP branch and the host’s exact security-patch status. A branch selector is not patch evidence.
Self-managed VPS or containerThe deployed container/image, web-server handler and PHP package inventoryThe PHP-FPM/Apache build serving traffic, package advisory and restart/redeploy status.
Vercel frontendDeployment runtime, custom functions, containers and rewritesWhether any route uses vercel-php or forwards to an external PHP service.
Supabase-backed appApp backends and connected servicesWhether an external PHP application calls Supabase. Its Edge Functions use Deno-compatible TypeScript.
Provider names help locate responsibility. They do not establish exposure or a patch verdict.⁵ ⁶ ⁷ ⁸

WordPress and TransIP: the checks you can do without a terminal

In WordPress, open Tools > Site Health > Info > Server and record the PHP version shown. In a Dutch dashboard this is Gereedschap > Sitediagnose > Informatie > Server. This is a useful inventory step, not a dedicated test for these vulnerabilities. Keep the technical information private.⁵

For TransIP shared hosting, the documented route is Webhosting, your domain, Geavanceerd, then PHP-instellingen. Do not switch to a random newer branch to see what happens. Ask the provider whether the exact PHP build serving that domain contains the security fix and whether any restart or change is still pending. We checked the public documentation, not your TransIP account.⁶

Send your host: “Does the PHP build currently serving [domain] contain the fixes for CVE-2026-109618 and CVE-2026-109619? Please give the active build or package version, advisory reference, completion time and any action still required from me.”

Give Claude Code or Codex a bounded inspection task

An agent can inspect your repository and authorised deployment configuration. It cannot prove what is running on a host it cannot access. Start with an inventory and evidence request. The prompt below is a defensive workflow, not an exploit test.

Inspect this product for PHP exposure related to CVE-2026-109618 and CVE-2026-109619. Start read-only. Map our domains, subdomains, deployed runtimes, containers, reverse proxies and external CMS/API services. Check only authorised repositories and provider dashboards. For each PHP service, report its owner, the actual web-serving build, exposure, vendor advisory and confirmed patch status, with time-stamped evidence. Check TransIP, Vercel custom runtimes/rewrites and apps connected to Supabase where relevant. If you lack access, record unknown and name the exact missing evidence. Do not print secrets, create public phpinfo files, run exploit requests, contact third parties or alter production. Propose the smallest patch or containment plan, its impact, backup/rollback and verification steps. Stop for my approval before changes.

Apply a verified runtime fix, then prove it is serving traffic

Use the fixed release for your maintained branch, or a vendor package whose advisory explicitly confirms both CVE fixes. This table lists the upstream releases; a distribution can backport a fix while retaining an older version number. Ask for its package advisory and active build rather than rejecting or trusting a number alone.¹¹ ¹²

PHP branchFixed upstream release
8.28.2.35
8.38.3.36
8.48.4.27
8.58.5.12
First fixed upstream releases for both CVEs, published 21 October 2026. Vendor backports require separate confirmation.¹¹ ¹²

PHP 8.1 and older receive no regular upstream security releases. Arrange a tested migration or obtain vendor-confirmed maintained backports. PHP supplied minimal source backports for 7.4, 8.0 and 8.1, but source patches are not a ready-to-install managed hosting update. Have the operator assess the supported route.¹ ⁹

For a self-managed service, the operator should determine whether PHP-FPM, Apache, containers or workers need restarting or redeploying. Then verify the build in the web-serving process and test the important routes: login, forms, uploads, checkout and scheduled jobs as applicable. A local php -v result may belong to a different interpreter than the web service. A passing homepage alone is insufficient.

If you cannot patch an exposed service, contain it before PHP runs

The PHP team says temporary mitigations do not make an unpatched installation safe. CERT-EU recommends considering isolation when immediate remediation is impossible. For a critical exposed PHP service, agree targeted restrictions with its operator until the verified runtime fix is active.¹ ²

Apply a temporary access restriction at the provider, reverse proxy or network boundary before requests enter PHP. Cover direct origin access as well as the public domain. A WordPress maintenance plugin can still invoke PHP, so a maintenance page inside the application is not equivalent to isolating the runtime.

Choose the narrowest effective restriction. A separate affected blog may be isolatable without disabling an unrelated application. Preserve authorised operational access, essential service continuity and evidence. If compromise is suspected, preserve logs and engage incident response; patching does not demonstrate that an earlier intrusion has been removed.

Keep unknowns visible until there is evidence

This article does not audit your infrastructure or certify a provider. It gives you an inventory, a named owner and a way to verify the response. Neither the severity score nor a technology-detection service establishes that a particular request can exploit your product.

That is also the evidence discipline behind the Forenta Journal: record what was actually checked, what remains unknown and who owns the next action. The related article “What a Passing Build Actually Proves” explains why a successful technical check must be read within its scope. The useful result here is a dated patch or containment record for every exposed PHP service.

Is this a worldwide PHP outage?

The sources establish a critical PHP security warning. They do not establish that every PHP website is offline or compromised. Check the live PHP notice and your own services.

Does updating WordPress fix the PHP engine?

A WordPress core or plugin update alone is not evidence that the host’s PHP runtime was patched. Request the active web-serving build and the provider’s security advisory.

Am I safe if my app uses Vercel and Supabase?

Those provider names are insufficient. Check community PHP runtimes, containers, rewrites and external WordPress/PHP services. Supabase Edge Functions themselves use a Deno-compatible TypeScript runtime.

Which PHP version fixes these vulnerabilities?

PHP released 8.2.35, 8.3.36, 8.4.27 and 8.5.12 on 21 October 2026. Use the fixed release for your supported branch or a vendor-confirmed package containing both CVE fixes. Verify the running web build after activation; a local CLI version or supported branch alone is insufficient.

Should I take the whole product offline?

Assess and contain the affected internet-facing PHP service with its operator when it cannot be patched promptly. Restrict access before PHP executes and cover the direct origin. Preserve essential service continuity; a blanket shutdown is not the default.

Back to the Journal