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

Is AWS Lightsail patched for PHP2Shell? How to confirm

AWS says it cannot patch running Lightsail instances in place. What its bulletin says, how to check the PHP on your instance, and what to do for each image type.

By run.cloud security teamPublished 26 October 20268 min readHow we check facts
On this page
  1. What exactly did AWS say about Lightsail?
  2. Why is "Lightsail is patched" the wrong question?
  3. How do I see which PHP my Lightsail instance runs?
  4. What is the fix status for the operating system underneath?
  5. Should I patch in place or rebuild from a new blueprint?
  6. What should I send to AWS support, or to my own developer?
  7. Am I affected? A three-state self-test
  8. Was a Lightsail instance exploited before the patch?
  9. What does the free scan show for a Lightsail site?

AWS says it cannot update running Amazon Lightsail instances in place, and that updated Lightsail blueprints for PHP2Shell (CVE-2026-109618 and CVE-2026-109619) are available in all regions. Your instance is patched only if its own PHP packages were updated and the PHP workers were restarted, or if it was built from an updated blueprint. Check the instance, not the dashboard.

FactDetailSource
CVE idsCVE-2026-109618 and CVE-2026-109619, CVSS 9.2 eachGHSA-w8hw-w9fx-j79w, GHSA-6wmf-4rv5-p3rp
Fixed PHP releases8.5.12 · 8.4.27 · 8.3.36 · 8.2.35 (8.5.12 and 8.4.27 dated 22 October 2026)PHP notice, changelog
AWS statement for Lightsail"Updated Lightsail blueprints are now available in all regions. AWS cannot update running Lightsail instances in place."AWS bulletin 2026-143-AWS, published 21 October, updated 23 October 2026
What AWS asks of customersCreate new instances from the updated blueprints and migratesame bulletin
ExploitationHoneypot attempts from 17 October (AWS, vendor-claimed); no confirmed named victim in a primary source at our checkAWS Security Blog
Lightsail's own update guideLightsail-packaged WordPress, LAMP and Nginx blueprints take PHP from OS packages: update, then restart the web server. Bitnami blueprints carry their own PHP under /opt/bitnami/php, which apt upgrade does not updateLightsail guide, added 21 October 2026
Checked26 October 2026this page

What exactly did AWS say about Lightsail?

The bulletin has one Lightsail paragraph. It says updated blueprints are available in all regions, that AWS cannot update running instances in place, and that customers running PHP workloads should create new instances from the updated blueprints and migrate their applications. At our check on 26 October 2026 the bulletin still read as last updated on 23 October.

Three things the bulletin does not say. It does not list which blueprints were refreshed. It does not say that any existing instance is patched. It gives no guidance on restarting PHP workers. Lightsail's separate update guide, added 21 October 2026, does cover package updates and a web server restart for Lightsail-packaged blueprints, and says the PHP bundled in Bitnami blueprints is not updated by apt upgrade. Those gaps are the reason this page exists: the sentence "blueprints are updated" describes a template, and your site runs on an instance.

Why is "Lightsail is patched" the wrong question?

On Lightsail you rent a virtual server. The operating system, the web server and PHP on it are yours to maintain, which is the same position as any other VPS. AWS patches its blueprints for new instances. It does not reach into your running one.

That produces three separate states for a Lightsail site:

  1. Built before 21 October and never touched. It runs the PHP it was built with. It is exposed until someone updates it.
  2. Built before 21 October and updated since. It is patched only if the installed package contains the fix and every worker started after the install.
  3. Built from an updated blueprint. The PHP in the image should include the fix. You still confirm it on the instance, because a blueprint is a template and you may have changed PHP afterwards.

Our host-by-host pages treat a status the same way everywhere: only what the host's own dated page says. AWS's page says blueprints are updated. It says nothing about your instance. The same logic applies to Cloudways and Kinsta's managed setup, where the host manages more of the stack than AWS does here. Other unmanaged VPS rentals have the same split, as in the DigitalOcean and Linode answers, and the other host-by-host answers cover the rest.

Two routes to a patched Lightsail instance, each ending in a check on the instance Existing instance old PHP until changed Update PHP packages then restart the workers New instance from updated blueprint, migrate Confirm on the instance package changelog + service start time
Both routes end in the same check. AWS recommends the right-hand route for running instances; the left-hand route works when the package changelog names both CVEs.

How do I see which PHP my Lightsail instance runs?

Open the instance in the Lightsail console and connect over SSH, either with the browser-based connection or your own client. Everything below is read-only.

  • Find which PHP serves the site. Many instances have more than one PHP installed. The command-line php -v can be a different binary from the one answering web requests.
  • Read the installed package and its changelog. On Debian and Ubuntu use apt changelog or the dpkg log. On Amazon Linux use rpm -q --changelog against the PHP package. The changelog should name both CVE ids.
  • Find when the web service last started: systemctl status for the PHP-FPM or Apache unit. That time must be later than the package install time.
  • If the instance came from an application blueprint, check whether PHP lives in the OS package manager or in a bundled application directory. A bundled PHP is not updated by the OS package manager, so check it separately.
  • Repeat for every virtual host if the server runs more than one site.

The version number alone misleads, because distributions backport fixes and keep the old number. The Ubuntu and Debian backport trap explains how to read it, and the restart guide shows why a fixed package that nobody restarted keeps serving the old code.

What is the fix status for the operating system underneath?

Your instance runs a Linux distribution, and its package state decides whether "update the packages" gives you a fix. These are the dated vendor records for Amazon Linux at our check on 26 October 2026; the Ubuntu and Debian rows were last read on 24 October.

OS imagePackage statusSource
Amazon Linux 2023, php8.2 to php8.5Fixed, 22 October 2026ALAS CVE-2026-109618, CVE-2026-109619
Amazon Linux 2023, php8.1No fix plannedsame pages
Amazon Linux 2, PHP 8.2 ExtraFixed, 22 October 2026 (listed for CVE-2026-109619)ALAS CVE-2026-109619
Amazon Linux 2, core php packageNo fix plannedboth ALAS pages
Ubuntu 22.04 (php8.1)8.1.2-1ubuntu2.28Canonical
Ubuntu 24.04 (php8.3)8.3.6-0ubuntu0.24.04.13Canonical
Debian 12 bookworm (php8.2)8.2.35-1~deb12u1Debian tracker
Debian 13 trixie (php8.4)8.4.27-1~deb13u1Debian tracker

Amazon Linux rates both CVEs lower (CVSS 8.1 on its own pages) than the PHP project's 9.2. The two scores describe the same pair of bugs, scored by different parties, and the PHP advisories stay the reference we use (every fixed version in one table). These rows move, so open the linked page before you act. Whether a given Lightsail blueprint image uses Amazon Linux, Ubuntu or Debian is shown in the console for your instance.

Should I patch in place or rebuild from a new blueprint?

AWS recommends new instances from updated blueprints. In-place updates are still an option for people who manage their own packages. This table is how we would decide.

Your situationRouteWhat to confirm
Plain OS image with PHP you installed through the package managerUpdate the PHP packages, restart workersChangelog names both CVEs; service started after install
Application blueprint with bundled PHPRebuild from the updated blueprint and migrate, as AWS asksPHP version and build on the new instance before moving DNS
Production store with data on the instanceRebuild from the updated blueprint, test, then switch. Keep the old instance until the new one is confirmedOrders and uploads present; the new PHP confirmed
PHP 8.1 or olderMove to a supported branch on a new instanceSee the end-of-life guide
Not sure what the instance is runningTreat it as exposed until the check above is donePackage, changelog, start time

A snapshot does not fix anything. It copies the disk as it was, including the old PHP. If you restore or clone from a snapshot taken before the update, update the packages and restart the workers afterwards.

What should I send to AWS support, or to my own developer?

If the instance was built by an agency or freelancer, the same question works for them. Keep the reply.

For my Lightsail instance [instance name, region], is the PHP runtime that serves web requests patched for CVE-2026-109618 and CVE-2026-109619? Please give the installed package and changelog entry that names both CVEs, the time the PHP-FPM or Apache workers last started, and say whether this instance was built from a blueprint dated after 21 October 2026.

AWS support can speak to which blueprint was refreshed. It cannot tell you what a previous owner installed on top. For the split of duties on a VPS, see who patches what on a VPS.

Am I affected? A three-state self-test

Am I affected? Where you stand right now

A passive check from outside can read headers and version hints. It cannot see your package changelog, which PHP serves each virtual host, or when the workers last started.

  1. Detected Your site serves PHP and the exposed version is below the fixed release for its branch. Treat the instance as exposed. Update the packages and restart the workers, or rebuild from an updated blueprint, today.
  2. Unknown The version is hidden, or could be a distribution backport, or you cannot tell which PHP serves the domain. This is the common case on Lightsail. Connect to the instance and read the package changelog and the service start time.
  3. Confirmed by owner evidence You hold a changelog entry naming both CVEs and a service start time after the install, or a new instance built from an updated blueprint with the same evidence. The runtime is patched. Whether anything got in earlier is a separate question.

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

Was a Lightsail instance exploited before the patch?

AWS reported honeypot attempts from 17 October, four days before disclosure, and says it is unclear whether those attempts would have worked on real systems. At our 24 October check we found neither CVE among the visible entries of the CISA Known Exploited Vulnerabilities catalog, and no primary source naming a compromised site. Attempts are not compromises.

If an instance ran unpatched PHP and was reachable from 17 October, look for unexpected PHP files in upload directories, cron entries you did not create, new administrator accounts, and unfamiliar outbound connections. Patching does not remove anything planted earlier. The look-back guide covers the checks, and the rotate-secrets guide applies if you find evidence.

A web application firewall in front of the instance is a stopgap. Read what a WAF can and cannot do here.

What does the free scan show for a Lightsail site?

The free scan identifies the technologies your site serves, the way Wappalyzer does, then looks each version up in public vulnerability records. It is a lookup: it can say a version is affected, not whether your setup is exposed. It cannot see a backport, which runtime serves a virtual host, or whether workers restarted. Your instance can. Use the scan to find out what your site shows to the outside, and the checks above for the answer.

The scan requires you to prove you own the domain with a DNS record first. The wider context is in the October 2026 tracker, and if you run PHP on more than one server, an inventory of every PHP runtime is the first job. The overview of both bugs is on the PHP2Shell write-up, and the generic fix steps are in the patch guide.

Questions people ask

Is AWS Lightsail patched for PHP2Shell?

AWS says updated Lightsail blueprints are available in all regions, and that it cannot update running instances in place. So a Lightsail instance is patched only if its own PHP packages were updated and its PHP workers restarted, or if it was created from an updated blueprint. Check the instance itself.

Do I have to rebuild my Lightsail instance, or can I just run an update?

AWS tells customers to create new instances from the updated blueprints and migrate. Updating the PHP packages inside the existing instance is also a route to a patched runtime, provided the package changelog names both CVEs and the PHP workers are restarted afterwards. Which route fits depends on how the instance was built.

My Lightsail dashboard shows a blueprint name. Does that tell me if I'm patched?

No. The dashboard shows what the instance was created from, not what is installed now. An instance made before 21 October carries the PHP it was built with until someone updates it. Connect to the instance and read the installed package and the service start time.

Does restoring a Lightsail snapshot fix the problem?

No. A snapshot is a copy of the disk at one moment. If it was taken before the PHP update, restoring it brings back the old PHP. Update the packages and restart the workers after the restore, or build the new instance from an updated blueprint.

I run WordPress on Lightsail. Do I need to do anything beyond updating WordPress?

Yes. The flaw is in PHP itself, so WordPress and plugin updates do not close it. You need a PHP runtime on the instance that includes the fix and a restart of the workers that serve the site.

My Lightsail instance runs PHP 8.1 or older. What now?

The PHP project does not release fixes for 8.1 and older. Amazon Linux lists no fix planned for php8.1 on Amazon Linux 2023 or for the core php package on Amazon Linux 2. The realistic path is a supported PHP branch on a new instance, tested before you switch traffic.

Sources

  1. AWS security bulletin 2026-143-AWS: PHP vulnerabilities (published 21 October 2026, updated 23 October 2026)The Lightsail statement: updated blueprints are available in all regions and AWS cannot update running instances in place. Checked 26 October 2026.
  2. Update PHP on Lightsail instances to address CVE-2026-109618 and CVE-2026-109619 (Amazon Lightsail User Guide, added 21 October 2026)Lightsail's own steps per blueprint type, including that Bitnami blueprints carry a separate PHP that apt does not update. Dated by the Lightsail document history. Checked 26 October 2026.
  3. PHP security notice, 21 October 2026 (php.net)Fixed releases, scope, interim settings, end-of-life branches, and the 23 October follow-up on CVE-2026-115560. Checked 24 October 2026.
  4. GHSA-w8hw-w9fx-j79w: CVE-2026-109618, RCE via OOM corruption (php/php-src)CVSS 9.2, patched in 8.2.35, 8.3.36, 8.4.27, 8.5.12.
  5. GHSA-6wmf-4rv5-p3rp: CVE-2026-109619, RCE via stale global state (php/php-src)CVSS 9.2, same patched releases.
  6. PHP 8 changelog (php.net)8.5.12 and 8.4.27 dated 22 October 2026. No newer 8.5 release at our check.
  7. PHP supported versions (php.net)8.2 security support ends 31 December 2026.
  8. Amazon Linux Security Center: CVE-2026-109618Per-platform fix status for Amazon Linux 2 and 2023. Checked 26 October 2026.
  9. Amazon Linux Security Center: CVE-2026-109619Same platforms, same dates.
  10. Amazon Threat Intelligence: PHP2Shell exploitation attempts in MadPot (AWS Security Blog, 21 October 2026)Vendor telemetry. AWS says it is unclear whether the early attempts would have succeeded on real systems.
  11. Canonical: PHP2Shell vulnerability fixes available (Ubuntu blog)Fixed package per Ubuntu release and the restart instruction.
  12. Debian security tracker: CVE-2026-109618Per-release package status. It records package fixes, not worker restarts.
  13. CISA Known Exploited Vulnerabilities catalogNeither CVE appeared in the catalog entries visible at our 24 October check.

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.