Two Critical PHP Flaws Were Patched. Is Your Website Still Exposed? 12 Checks

Engineer using a precision stylus to verify the final security check on a white inspection panel with turquoise indicators, illustrating a PHP security checklist. Checklists & Cheat Sheets
Reports indicate exploitation of two critical PHP flaws. Use this 12-point checklist to verify your runtime, apply the right fix and review related advisories.
🛡️ SECURITY RESPONSE · OCTOBER 2026

This PHP security checklist helps website owners respond to two critical vulnerabilities patched on October 21, 2026 — and check whether their running website actually received the fixes.

The PHP project disclosed CVE-2026-109618 and CVE-2026-109619, two critical vulnerabilities that can allow unauthenticated remote code execution.

That means a vulnerable PHP runtime may be exposed to attacks before a visitor even logs in. A successful update closes the known flaws; it does not establish whether an earlier compromise occurred.

Update · October 31, 2026: On October 27, the Canadian Centre for Cyber Security updated its alert to report open-source indications that both vulnerabilities are being exploited in the wild. It also notes that CISA added both CVEs to its Known Exploited Vulnerabilities catalog on October 26. This raises the urgency of patching exposed PHP runtimes; it does not prove that any particular website was compromised. See the Canadian Centre alert.

WordPress published its own security notice urging website owners to update the PHP runtime used by their hosting environment.

The question is no longer simply whether you updated WordPress. It is whether the PHP software processing your website’s requests is fixed.

Priority: If an internet-facing PHP service has not received the vendor’s security fixes, treat remediation as urgent. A WAF or temporary configuration change is not a substitute for the PHP update. If you cannot patch promptly, restrict public access or isolate the application while you work with your host or vendor.
The exposure path
A website request reaches PHP before your application can protect itself.

The October vulnerabilities affect the PHP runtime, not just a particular WordPress plugin.

Why this matters: Some demonstrated attack paths occur during PHP’s internal request handling, before application-level protections can run.

Conceptual architecture, not an exploit demonstration or live vulnerability scan.

9.2CVSS v4.0 score for each of the two critical vulnerabilities
October 21Date of the initial emergency PHP security releases
12 checksPractical steps covering discovery, patching, verification and response
Short answer: Identify every PHP runtime serving your sites, apply the appropriate upstream release or vendor backport, restart affected workers, then verify the runtime that handles real web requests. Check the additional October advisories below.

Which PHP Versions Received the Emergency Fixes?

On October 21, 2026, the PHP project released these fixed upstream versions:

Upstream fixed releases for CVE-2026-109618 and CVE-2026-109619
PHP branchFixed upstream release
PHP 8.58.5.12
PHP 8.48.4.27
PHP 8.38.3.36
PHP 8.28.2.35

These are upstream PHP release versions. Linux distributions and hosting vendors may backport security patches into packages that keep an older upstream version number. Check the package revision and vendor advisory as well as the displayed PHP version. PHP 8.1 and earlier no longer receive updates from the PHP project’s normal security-release process; some vendors may still provide backports. PHP 8.2 is scheduled to reach end of life on December 31, 2026, so plan a move to a supported branch.

The 12-Point PHP Security Checklist

These commands are primarily read-only checks. Install updates and restart services only through an authorized administrator and a tested recovery plan. Mark a step complete after you have verified and recorded its result.

Your review progress 0 / 12

Start with the website inventory. Completion is a manual review, not a security scan.

Progress is saved in this browser when storage is available.
01
Discovery

Identify Every Website and Service Using PHP

An overlooked application, staging site or secondary domain can remain vulnerable after the main website is updated.

View explanation and checks

List production sites, staging domains, administrative panels, internal tools, containers and separately installed PHP applications. Do not assume all sites use the same PHP installation; a single server can run several versions side by side.

Verified when: you have an inventory of affected applications, their owners and the PHP environments serving them.
02
Runtime

Check the PHP Version Serving Real Web Requests

The command-line PHP version may differ from the runtime powering your public website.

View explanation and commands

In WordPress, open Tools → Site Health → Info → Server and inspect the PHP version. You can also run php -v, but that only identifies the PHP executable reached by your shell; it does not prove which PHP-FPM pool, Apache module or hosting runtime handles web requests.

On managed hosting, check the provider’s site or PHP management panel.

Verified when: the PHP version used by the website itself is documented.
03
Vulnerability assessment

Compare the Runtime Against the Fixed Releases

Establish whether the active runtime contains fixes for both critical CVEs.

View explanation and checks

Compare the upstream version against the table above. If the displayed release is older, check whether the Linux distribution or hosting vendor has supplied a patched package with an older upstream version string.

The October 21 flaws are CVE-2026-109618 and CVE-2026-109619. Do not mark a runtime patched solely because a hosting dashboard says “up to date”; look for explicit security coverage from the package supplier.

Verified when: the active runtime is confirmed fixed by its upstream version or a documented vendor backport.
04
Server architecture

Identify PHP-FPM, Apache Modules and Other Handlers

Updating one PHP executable does not automatically update every runtime or worker process.

View explanation and commands

On Linux, these commands can help discover PHP-related processes and services:

ps -eo pid,comm,args | grep '[p]hp-fpm'
systemctl list-units --type=service --all | grep -Ei 'php|apache|httpd|litespeed'

Depending on the deployment, you may have multiple FPM pools, containers, Apache modules or other handlers. These commands are discovery aids, not a complete map of every hosting stack.

Verified when: all active web-facing PHP runtimes and their service managers have been identified.
05
Recovery

Verify Backups and Prepare a Recovery Plan

An emergency update should not turn a failed deployment into permanent data loss.

View recovery checks

Confirm you have a recent backup of application files, databases, configuration and relevant credentials. Check whether it can actually be restored; a backup file existing somewhere does not prove recoverability.

For a self-managed server, establish a maintenance window and confirm independent administrative access. See our Linux Server Backup & Restore Checklist.

Verified when: backup and rollback paths are documented, accessible and tested.
06
Patch source

Confirm That Your Hosting Vendor Has Released the Fix

Different hosting platforms distribute PHP security updates through different channels.

View explanation and commands

Determine whether PHP comes from your OS vendor, a third-party repository, a hosting panel, a container image or an upstream installation.

On Debian or Ubuntu, inspect installed packages with:

dpkg-query -W 'php*' 2>/dev/null

On RPM-based systems:

rpm -qa | grep -E '^php|^ea-php'

Match the package supplier’s security notice to the installed package revision. For managed hosting, request confirmation that both October 21 CVEs are fixed in the active web runtime.

Verified when: the update source and its security advisory are known.
07
Remediation

Install the Correct PHP Security Updates

Apply patches to every affected PHP installation, not just WordPress core or plugins.

View update guidance

On self-managed servers, follow the package vendor’s security update instructions. Include the relevant PHP packages, modules, extensions and service handlers. Review which packages will change and whether the update could interrupt production traffic.

On managed hosting, use the supported dashboard or request immediate remediation from the provider. Do not replace vendor packages with an unrelated binary just to obtain a higher version number; this can break dependencies and complicate future updates.

Our Linux Server Change Checklist covers safer preparation and rollback.

Verified when: every affected installation has the appropriate vendor fix or fixed upstream release.
08
Activation

Restart Affected Workers and Verify the Running Runtime

Installing corrected files does not necessarily replace vulnerable PHP code already loaded into worker processes.

View explanation and commands

Find the actual service handling requests. For example, a Debian installation might use a versioned service such as php8.3-fpm. Inspect its status:

systemctl status php8.3-fpm --no-pager

After an approved update, use your service manager or hosting platform’s supported restart procedure. The service name varies by environment. Restarts may briefly interrupt active requests, so coordinate them with your availability plan.

Verify the version used by new web requests, not just by the CLI.

Verified when: the patched runtime is serving requests and all affected workers have been replaced.
09
Functional testing

Test the Website After the PHP Update

A successful service restart does not prove the application is functioning correctly.

View explanation and commands

Test critical workflows: page loading, login, forms, file uploads, checkout, scheduled jobs and database access.

You can inspect HTTP response headers with:

curl -I https://example.com

Replace the example address with your domain. An HTTP 200 response confirms only that one request succeeded; it does not validate every feature or prove that PHP is patched. Check the runtime version again after the service has restarted.

Verified when: key application functions work and the active PHP runtime is patched.
10
Incident review

Review Logs and Investigate Signs of Compromise

Applying a patch prevents future exploitation of the fixed flaws, but does not undo a previous compromise.

View explanation and commands

Review web access logs, PHP errors, unexpected processes, newly created files, unfamiliar scheduled tasks and unusual outbound connections.

For a systemd-managed PHP-FPM service, inspect recent events:

journalctl -u php8.3-fpm -n 100 --no-pager

Replace the service name as appropriate. Missing logs or suspicious requests do not by themselves prove an intrusion; clean-looking logs cannot guarantee that no compromise occurred.

If evidence suggests unauthorized access, preserve relevant records, follow an incident-response process and consider specialist help. Our Linux Server Security Audit Checklist offers a broader VPS security review.

Verified when: available evidence has been reviewed and concerning findings are being investigated.
11
Additional October advisories

Review the Session Advisory and Updated Windows Builds

Security guidance continued to change after the initial October 21 releases.

View important additional details

October 23 · CVE-2026-115560: PHP published an informational advisory for an unlikely remote-code-execution path involving session upload progress. PHP recommends setting session.upload_progress.enabled=0 until the next regular bug-fix release to protect against this vector.

The PHP advisory says this path requires all three conditions: the configuration sets session.serialize_handler to php_binary or php_serialize; application code switches it to php at runtime with ini_set() before session_start(); and session upload progress remains enabled. If an application does not switch the serializer at runtime, PHP says this feature can remain enabled.

To apply the mitigation, set it in php.ini, an FPM pool, or server configuration that takes effect before request parsing. Do not rely on ini_set() or FPM .user.ini for this setting, and restart every affected PHP worker. PHP says this blocks the confirmed session paths, not every possible variant.

You can query the CLI configuration with:

php -i | grep \
  'session.upload_progress.enabled'

This reports the CLI setting only; it does not prove what PHP-FPM, Apache or another web runtime uses. Verify the active web configuration through the hosting panel or the configuration for the serving handler. Assess compatibility before changing the setting.

October 26 · Windows packages: PHP published Windows rebuilds 8.5.12-1, 8.4.27-1, 8.3.36-1 and 8.2.35-1 with Brotli 1.2.1, which fixes CVE-2026-111497. This is a dependency rebuild, not a new PHP source version. PHP says the affected decoder path through cURL requires automatic HTTP response decompression to be enabled; cURL disables it by default, though an application or HTTP client library can enable it. Check these rebuilt packages if you run the affected Windows builds.

Verified when: all additional advisories relevant to your platform have been reviewed and addressed.
12
Closure and follow-up

Record the Outcome and Plan Future Security Checks

A patching task is not finished until someone can show what changed, where it changed and whether the result was verified.

View verification requirements

Document affected websites and environments, installed package revisions, vendor security references and verification performed afterward.

Record sites that remain exposed because their hosting provider has not supplied a fix. Assign an owner and escalation plan to each outstanding risk.

Schedule routine checks for future PHP advisories, application updates and end-of-support dates.

Verified when: remediation is documented, remaining risks have owners and follow-up actions are scheduled.
What does 12/12 mean? It means you manually marked every review step as completed. The page has not scanned your server, verified its configuration or certified it secure.

What If You Cannot Patch PHP Immediately?

PHP says there is no complete configuration-only mitigation for the October 21 vulnerabilities. Updating to a fixed release or applying a trusted vendor backport is the required long-term fix.

If you cannot update promptly, restrict access to the application or isolate it from public networks while you coordinate remediation. WAF rules and runtime settings may reduce exposure to specific paths, but they do not establish that an installation is safe.

🔎
Identify exposure
🛡️
Restrict access
✅
Patch and verify

The appropriate operational response depends on exposure, business impact and recovery options. Follow your provider’s guidance and preserve relevant logs if you suspect a compromise.

Frequently Asked Questions

Does updating WordPress fix these PHP vulnerabilities?

No. These vulnerabilities affect the PHP runtime. WordPress updates remain important, but the October 21 fixes must come from your PHP supplier or hosting provider.

Is PHP-FPM affected, or only Apache mod_php?

The PHP advisory includes PHP-FPM, mod_php, php-cgi, FrankenPHP and LiteSpeed environments. Exposure and attack conditions vary by handler. PHP considered mod_php particularly high risk for the demonstrated attack.

Can an older PHP version still be patched?

Sometimes. Enterprise Linux vendors may backport security fixes while retaining an older upstream version. Verify the exact package and vendor advisory. PHP 8.1 and earlier are unsupported by the PHP project’s normal security process, although some vendors provide backports.

Can I publish a phpinfo() page to check the version?

Avoid exposing a public diagnostic page; it may reveal detailed server configuration. Use your hosting panel, WordPress Site Health or authorized internal diagnostics.

Does a WAF guarantee protection?

No. A WAF may reduce exposure to known traffic patterns, but cannot guarantee protection against every exploitation path. Apply the PHP security updates and verify the active runtime.

Official Sources

The vulnerability and mitigation information in this article was checked against official advisories on October 31, 2026. PHP releases and vendor backports can change; confirm the current package guidance before updating a production system.

🎓 Servers Academy — Final Takeaway

Your website can look completely normal while its PHP runtime still needs an urgent security update.

A successful WordPress update, a clean-looking homepage or an apparently current CLI PHP version cannot independently establish that the production web runtime is patched.

The reliable process is to identify the real runtime, verify the vendor fix, update every affected environment and confirm that corrected workers are processing requests.

Do not stop at “the update installed.” Verify that protection is actually in effect.

Rate article
Servers Academy
Add a comment