1. Red
  2. Learn
  3. Is my host patched?

Google Cloud PHP2Shell status: is it patched? How to check

Google Cloud PHP2Shell status at 26 October 2026: what bulletin GCP-2026-070 says per product, how to check App Engine and Cloud Run, and what to redeploy.

By run.cloud security teamPublished 26 October 20268 min readHow we check facts
On this page
  1. Who owns the fix on Google Cloud?
  2. What did Google correct on 22 October?
  3. Which Google Cloud product are you on?
  4. How do I check App Engine?
  5. How do I check Cloud Run?
  6. What about VMs, GKE and everything else?
  7. Can Google tell me which of my images are at risk?
  8. What to ask your own team, or Google support
  9. Am I affected? A three-state self-test
  10. Was anything exploited before the redeploy?
  11. Where does the free scan fit?

Google's own bulletin GCP-2026-070 says Google Cloud's infrastructure is not vulnerable to PHP2Shell, and that PHP workloads you run on it may be. Its instruction is to redeploy with updated dependencies. As of 26 October 2026, whether your service is patched depends on the product. Check the deployed revision, image or runtime, then confirm it started after the fix.

FactDetailSource
Google bulletinGCP-2026-070, severity Critical, published 21 October 2026, no update date listed at our 26 October check. GCP-2026-072 (24 October) covers Apigee developer portals built on DrupalGoogle Cloud bulletins
CVE idsCVE-2026-109618 and CVE-2026-109619, remote code execution in PHP core, CVSS v4 9.2PHP notice
Fixed PHP releases8.5.12, 8.4.27, 8.3.36, 8.2.35PHP notice
Google's customer actionRedeploy workloads with updated dependenciesGoogle bulletin
App Engine standard note22 October: supported PHP 8.2 and later are patched; redeploy. 24 October: rebuild and redeploy with updated dependencies. The 21 October note was marked incorrectRelease notes
ExploitationAWS honeypot attempts from 17 October (vendor-claimed); not in the CISA catalog at our checkAWS
Checked26 October 2026 (Google bulletins and release notes)this page

This page covers Google Cloud as a place to run your own PHP. It is not a status for Google Workspace or Google's consumer products. For what the flaw is and who it affects in general, see our plain-language explainer on the bug.

Who owns the fix on Google Cloud?

You do, in most cases. Google's bulletin separates "Google Cloud infrastructure", which it says is not vulnerable, from "customers running PHP on Google Cloud", who may be. A service you deploy carries its own PHP, and the bulletin asks you to redeploy it.

This differs from a shared host such as the ones in our Cloudways page, where one company patches a fleet. On Google Cloud there is no single fleet to wait for. Each App Engine app, Cloud Run service, function, VM and cluster has its own state. The other big clouds split the job differently: see what Microsoft says about Azure App Service and what AWS says about patching Lightsail instances, or browse the other host status pages.

What did Google correct on 22 October?

Google withdrew a statement. The App Engine and Cloud Run release notes each carry a 21 October entry now marked incorrect, with a pointer to follow the 22 October entry. The withdrawn entry had said PHP workloads were automatically patched.

The 22 October entry reads: "All supported versions of PHP 8.2 and later are patched. Take immediate protective action by redeploying your resources with updated dependencies." You can read it in the App Engine PHP release notes, the Cloud Run release notes and the Cloud Run functions release notes.

If you read a summary written on 21 October that says Google patched everything automatically, it predates the correction. Our own research snapshot of 22 October carried that earlier version for App Engine, and this page replaces it.

Flow: Google publishes the bulletin, you redeploy, a new revision starts, you confirm its build and time Google bulletin 21 Oct 2026 GCP-2026-070 You redeploy rebuild, then deploy again New revision new image or new instances You confirm build and start time, in writing A fixed image on disk is not enough. The serving process must have started from it.
The order that counts on Google Cloud. The bulletin is step one; the evidence is step four.

Which Google Cloud product are you on?

Find your row. The wording comes from Google's pages, dated at our 26 October check.

ProductWhat Google's pages sayWhat you do
App Engine standard22 Oct note: supported PHP 8.2 and later are patched; redeploy. 24 Oct note: rebuild and redeploy.Rebuild and redeploy after Google's 24 Oct note, then confirm in the build log that the runtime is PHP 8.2.35, 8.3.36, 8.4.27 or 8.5.12. A deployment from 22 or 23 Oct alone is not proof.
App Engine flexibleWe found no flexible-specific PHP2Shell note; its release-notes URL returned HTTP 404. The runtime is rebuilt from a base image.Redeploy and read the build log. Treat status as unknown until you do.
Cloud Run (source or buildpacks)Bulletin: services with automatic updates enabled may be patched automatically.Check the setting. If off, redeploy.
Cloud Run (own Dockerfile)Bulletin: redeploy with updated dependencies.Rebuild with a fixed PHP, deploy a new revision.
Cloud Run functions22 Oct note: redeploy with updated dependencies. 24 Oct note: rebuild and redeploy.Redeploy each PHP function.
GKE, Compute Engine, Marketplace imagesNot named in the bulletin.Update the PHP package or image yourself, then restart or roll out.

How do I check App Engine?

On App Engine standard the runtime id in app.yaml (for example php83) names the branch. Google's runtime page says App Engine updates patch releases automatically but not the minor version. The GAE_RUNTIME variable returns the runtime you configured.

None of that shows the build. So the check is the deployment itself.

  • Redeploy each PHP version of each service after 22 October 2026.
  • Note the new version's creation time in the console.
  • Route traffic to the new version and stop the old one.
  • Keep the deployment time next to the 22 October note in your records.

For flexible, Google's PHP runtime page says the runtime is regularly updated to the latest release version, and that a custom runtime picks its own base image, including Docker's PHP images. A custom runtime is yours to rebuild. Our Docker image page covers that route, and the Fly.io rebuild steps show the same image-owns-the-PHP pattern on another platform.

How do I check Cloud Run?

Cloud Run has the most moving parts. Google's automatic base image updates page says Google applies patches to the operating system and runtime without a rebuild, and that no new revision is created when the base image changes. It covers only Google's buildpacks base images. The page does not list PHP among its examples, so confirm on the service itself whether PHP gets this treatment.

Two checks follow from that.

  • Is the setting on? Source deployments enable it with the --automatic-updates flag alongside --base-image. A service that never had it will not change by itself.
  • Which base image version applied? Google says to look at the run.googleapis.com/base_image_versions label in the Cloud Run service logs.

If the service is built from your own Dockerfile, none of this applies. Rebuild from a fixed PHP and deploy. Google's revision documentation gives the commands to see what is serving:

gcloud run revisions list --service SERVICE --region REGION
gcloud run revisions describe REVISION --region REGION --format yaml

Read the image reference and the creation time. A revision created before 22 October 2026 predates Google's corrected note.

What about VMs, GKE and everything else?

Google's bulletin does not mention them, so there is no Google statement to quote. The responsibility is the same as on any server you run. Update the PHP package from your distribution or image source, then restart PHP-FPM, Apache or LiteSpeed.

PHP's security notice tells owners who apply the interim settings to restart every worker, and lists the fixed releases. A running worker keeps the code it started with, so after updating, replace or restart them. On GKE that means new pods from a rebuilt image. On a VM it means a restart after the package change. Our PHP-FPM restart page shows how to prove it.

Backported builds keep older version numbers, so read the package changelog for both CVE ids rather than the version. GHSA-w8hw-w9fx-j79w and GHSA-6wmf-4rv5-p3rp describe the two flaws.

Can Google tell me which of my images are at risk?

Partly. Google's overview says it scans operating system packages and PHP packages, and keeps scanning images pulled within the last 30 days.

Two limits matter here. Refreshing metadata can take up to 24 hours. And a scanner that reads package lists can miss a vendor backport, so a missing finding is not a confirmation. Treat it as a list of leads.

What to ask your own team, or Google support

If someone else deployed the service, send this. Keep the reply.

For [service name, project and region], which PHP build is serving requests now? Please give the image digest or deployed version, the date it was created, confirm it was built after 21 October 2026 with a PHP release or backport that names CVE-2026-109618 and CVE-2026-109619, and say whether automatic base image updates are on.

An agency checking client projects can reuse the same wording across accounts. The agency triage page covers consent and ordering.

Am I affected? A three-state self-test

Am I affected? Where you stand right now

A check from outside can read headers and version hints. It cannot see your deployed revision, your image contents, your base image setting, or when workers last started.

  1. Detected The site serves PHP and the version it shows is below the fixed release for its branch. Treat it as exposed. Redeploy with a fixed PHP today and restart or replace every worker.
  2. Unknown The version is hidden, could be a backport, or you cannot tell which product serves the domain. This is the common case on Google Cloud. Get the revision, image or build log from whoever deployed it.
  3. Confirmed by owner evidence You hold a build log or image contents naming a fixed PHP, and a deployment time after it. The runtime is patched. Whether anything got in earlier is a separate question.

No scan, ours included, moves you from "unknown" to "confirmed".

Was anything exploited before the redeploy?

Attempts came first. AWS reported honeypot attempts from 17 October, four days before disclosure, and said it is unclear whether they would have worked on real systems (AWS, vendor-claimed). At our check on 24 October the CISA catalog did not list either CVE, and its newest entries were dated 23 October.

If your service was reachable and unpatched from 17 October, look for unexpected PHP files, new admin users, scheduled jobs you did not create and unfamiliar outbound connections. Patching removes the hole and leaves anything planted earlier. After a real finding, rotate the secrets the service could read.

PHP also published a follow-up on 23 October for a separate issue, CVE-2026-115560, with the setting session.upload_progress.enabled=0 as a mitigation and a full advisory promised in the next release. It is a different issue from the two PHP2Shell CVEs.

Where does the free scan fit?

The free scan reads the stack your site serves and matches each version to known vulnerabilities. One per domain, no card. It is a lookup: it can say a version is affected, not whether your setup is exposed.

On Google Cloud that matters, because a load balancer, Cloud Run URL or custom domain hides which product sits behind it. The scan can give you "detected" or "unknown". Only the revision, the image or the build log gives you "confirmed".

Questions people ask

Is Google Cloud patched for PHP2Shell?

Google says its own infrastructure is not vulnerable, and that customer workloads running PHP may be. Its bulletin tells customers to redeploy with updated dependencies. Whether your service is patched depends on the product and on whether you redeployed or had automatic updates on.

My App Engine app says php83. Does that mean it is patched?

No. The runtime id names the branch, not the build. Google's 22 October release note says supported PHP 8.2 and later are patched and asks you to redeploy. Redeploy, then check the deployment time against that date.

Does Cloud Run patch PHP on its own?

Only if the service uses Google's buildpacks base images with automatic base image updates turned on. A service built from your own Dockerfile does not change until you rebuild the image and deploy a new revision. Check the setting on the service rather than assuming it.

I run PHP on a Compute Engine VM or GKE. What do I do?

Google's bulletin does not name those products. The general instruction is to redeploy with updated dependencies, which for a VM means updating the PHP packages and restarting the workers, and for GKE means rebuilding the image and rolling out new pods. Nobody at Google does that for you.

Where do I see which PHP my Google Cloud site runs?

On Cloud Run, open the service, then Revision history, and read the image and creation time. On App Engine standard, read runtime in app.yaml or the GAE_RUNTIME variable. These show the branch or image, not the PHP build, so also read the build log or the image contents.

Do I need to rotate keys or look for a break-in?

Patching does not remove anything planted earlier. AWS reported honeypot attempts from 17 October, and no primary source had confirmed a named compromise at our check. If your service was reachable and unpatched from 17 October, look for unexpected files, new admin users and unfamiliar outbound connections.

Sources

  1. Google Cloud security bulletin GCP-2026-070: PHP remote code execution vulnerabilities (21 October 2026)Google's own bulletin. Says Google Cloud infrastructure is not vulnerable, customer workloads may be, and customers should redeploy with updated dependencies. GCP-2026-070 had no update date at our 26 October check. A separate bulletin, GCP-2026-072 (24 October), covers Apigee developer portals built on Drupal. Checked 26 October 2026.
  2. App Engine standard PHP runtime release notes (22 and 24 October 2026)The 22 October entry says supported PHP 8.2 and later are patched and to redeploy. A 24 October entry lists PHP 8.2.35, 8.3.36, 8.4.27 and 8.5.12 and says to rebuild and redeploy. The 21 October entry is marked incorrect. Checked 26 October 2026.
  3. Cloud Run release notes (21, 22 and 24 October 2026)Same correction pattern and the same 24 October rebuild-and-redeploy entry as App Engine. Checked 26 October 2026.
  4. Cloud Run functions release notes (21, 22 and 24 October 2026)22 October entry directs readers to redeploy with updated dependencies. A 24 October entry says to rebuild and redeploy. Checked 26 October 2026.
  5. Cloud Run: automatic base image updatesHow the setting works, which base images it covers and where the applied base image version appears in logs. Checked 24 October 2026.
  6. Cloud Run: viewing revision detailsConsole path and gcloud commands for the image and creation time of a revision. Checked 24 October 2026.
  7. App Engine standard: PHP runtimeRuntime ids, automatic patch-level updates, and the GAE_RUNTIME variable. Checked 24 October 2026.
  8. App Engine flexible: PHP runtimeHow the flexible PHP runtime is built and how a custom runtime picks its base image. Checked 24 October 2026.
  9. Artifact Analysis: container scanning overviewWhat it scans, and how stale its results can become. Checked 24 October 2026.
  10. PHP security notices, 21 and 23 October 2026 (php.net)Fixed releases, scope, interim settings and the worker restart they require and the 23 October follow-up notice. Checked 24 October 2026.
  11. GHSA-w8hw-w9fx-j79w: CVE-2026-109618 (php/php-src advisory)
  12. GHSA-6wmf-4rv5-p3rp: CVE-2026-109619 (php/php-src advisory)
  13. Amazon Threat Intelligence: PHP2Shell exploitation attempts seen in MadPot honeypots before disclosure (AWS Security Blog)Vendor telemetry. AWS says it is unclear whether the early attempts would have worked on real systems.
  14. CISA Known Exploited Vulnerabilities catalogNeither CVE was visible in the catalog at our 24 October check; the newest entries were dated 23 October. Re-check before relying on this.
  15. Google Cloud blog: Responding to core PHP vulnerabilities (CVE-2026-109618, CVE-2026-109619)Referenced by Google's bulletin and release notes. The page returned a loading error to our fetch on 24 October 2026, so nothing on this page is taken from it.

Facts on this page are dated and point at the primary source next to them. If a vendor status changes after the date shown, the vendor's page wins; tell us at support@run.cloud and we will update it.