Skip to content
NoticeAWS reports broad exploitation attempts against php2shell in the wild (update of 22 Oct). If your PHP is not on a fixed version, update now.Details
Critical CVE-2026-109618 · CVE-2026-109619/ CVSS 9.2 / Disclosed 2026-10-21 Last updated

Update PHP on RHEL, AlmaLinux, Rocky Linux and Amazon Linux

Updated Platform: Red Hat Enterprise Linux

On this page

Only check systems you own or are responsible for.

Short answer

PHP upstream fixed the two php2shell flaws (CVE-2026-109618 and CVE-2026-109619, both critical) in 8.2.35, 8.3.36, 8.4.27 and 8.5.12. As of 22 Oct 2026, fixed packages exist for most RHEL 8, 9 and 10 streams, for Rocky Linux, Oracle Linux and AlmaLinux where they have published an advisory, for Amazon Linux 2023 (php8.2 to php8.5), for the Amazon Linux 2 php8.2 extras stream and for Remi. Not fixed yet: RHEL 9 php:8.4 and Rocky Linux 9 php:8.4 (no advisory), Rocky Linux 8 streams other than php:7.4 and php:8.2 (no advisory found), Oracle Linux 9 streams other than php:8.2 and php:8.3 and Oracle Linux 8 streams other than php:7.4 and php:8.2 (no entry), AlmaLinux builds other than 10 php and php8.4, 9 php:8.3 and 8 php:7.4 (not confirmed), and Amazon Linux 2023 php8.1 and Amazon Linux 2 core php (“No Fix Planned”). Distro packages keep older version numbers because fixes are back-ported, so compare your installed package with the vendor’s fixed package version, not the upstream number. The fixed-versions table shows the latest status.

Why it matters

PHP’s own advisory says the flaws can allow unauthenticated remote code execution, and that all PHP installations serving web requests are at risk, including PHP-FPM, Apache with mod_php, php-cgi, FrankenPHP and LiteSpeed (php.net advisory). It rates the risk highest for mod_php. CERT-EU says initial proofs of concept have begun to circulate (CERT-EU 2026-018).

Red Hat labels its fix advisories Important (for example “Important: php security update”), and it lists fixed packages for most RHEL 8, 9 and 10 streams (see the table below; Red Hat CVE-2026-109618). That label is Red Hat’s own severity scale and does not change the php.net guidance: php.net says “only an update is a complete solution”. Its interim measures reduce exposure to specific attack paths but “do not make an installation safe”.

Fix status by distribution

Status as recorded on 22 Oct 2026. “Fixed package (or newer)” is the version-release from the vendor’s advisory. “Not confirmed” means we found no vendor advisory yet. It is not a statement about your system either way.

RHEL, AlmaLinux, Rocky Linux, Oracle Linux

DistributionPHP package / streamFixed package (or newer)Advisory
RHEL 10php (PHP 8.3)8.3.36-1.el10_2RHSA-2026:87070
RHEL 10php8.48.4.27-1.el10_2RHSA-2026:87071
RHEL 9php (PHP 8.0, default non-modular package)8.0.30-8.el9_8.1RHSA-2026:87151
RHEL 9php:8.28.2.35-1.module+el9.8.0+25111+a1450321RHSA-2026:87072
RHEL 9php:8.38.3.36-1.module+el9.8.0+25109+6886e21aRHSA-2026:87079
RHEL 9php:8.4No fixed package and no advisory yet. Red Hat: “Affected”Red Hat CVE page
RHEL 8php:7.47.4.33-8.module+el8.10.0+25117+30337ccaRHSA-2026:87080
RHEL 8php:8.28.2.35-1.module+el8.10.0+25110+f67151d2RHSA-2026:87073
RHEL 7phpNo fixed package. Red Hat: “Under investigation” for CVE-2026-109618, “Not affected” for CVE-2026-109619CVE-2026-109618
RHEL 6phpNo fixed package. RHEL 6 is past regular support; if you have Extended Life-cycle Support, follow Red Hat’s own notices. Red Hat: “Under investigation” for CVE-2026-109618, “Not affected” for CVE-2026-109619CVE-2026-109618, CVE-2026-109619
AlmaLinux 10php (PHP 8.3)8.3.36-1.el10_2ALSA-2026:87070
AlmaLinux 10php8.48.4.27-1.el10_2ALSA-2026:87071
AlmaLinux 10php other buildsNot confirmed for other builds. AlmaLinux’s advisories cover php (8.3) and php8.4 onlyAlmaLinux errata
AlmaLinux 9php:8.38.3.36-1.module_el9.8.0+330+fdc30075ALSA-2026:87079
AlmaLinux 9php other buildsNot confirmed for other builds. AlmaLinux’s advisories list a fixed php build for php:8.3 onlyAlmaLinux errata
AlmaLinux 8php:7.47.4.33-8.module_el8.10.0+4321+cf5fd4bbALSA-2026:87080
AlmaLinux 8php other buildsNot confirmed for other builds. AlmaLinux’s advisories cover php:7.4 onlyAlmaLinux errata
Rocky Linux 10php (PHP 8.3)8.3.36-1.el10_2RLSA-2026:87070
Rocky Linux 10php8.48.4.27-1.el10_2RLSA-2026:87071
Rocky Linux 9php (PHP 8.0)8.0.30-8.el9_8.1RLSA-2026:87151
Rocky Linux 9php:8.28.2.35-1.module+el9.8.0+40395+2f706e64RLSA-2026:87072
Rocky Linux 9php:8.38.3.36-1.module+el9.8.0+40396+4e680bb7RLSA-2026:87079
Rocky Linux 9php:8.4Not confirmed. No Rocky advisory for this stream yetRocky advisories
Rocky Linux 8php:7.47.4.33-8.module+el8.10.0+40393+c071e357RLSA-2026:87080
Rocky Linux 8php:8.28.2.35-1.module+el8.10.0+40394+d21b33fbRLSA-2026:87073
Oracle Linux 10php (PHP 8.3)8.3.36-1.el10_2ELSA-2026-87070
Oracle Linux 10php8.48.4.27-1.el10_2ELSA-2026-87071
Oracle Linux 9php (PHP 8.0)8.0.30-8.el9_8.1ELSA-2026-87151
Oracle Linux 9php:8.38.3.36-1.module+el9.8.0+91082+c865dc1aELSA-2026-87079
Oracle Linux 9php:8.28.2.35-1.module+el9.8.0+91079+4ad1bd7fELSA-2026-87072
Oracle Linux 9php other module streams (such as php:8.4)Not confirmed for other streams. Oracle’s CVE pages list only php (8.0), php:8.2 and php:8.3 for Oracle Linux 9Oracle CVE-2026-109618
Oracle Linux 8php:7.47.4.33-8.module+el8.10.0+91080+9785160dELSA-2026-87080
Oracle Linux 8php:8.28.2.35-1.module+el8.10.0+91081+33b5c645ELSA-2026-87073
Oracle Linux 8php other module streamsNot confirmed for other streams. Oracle’s CVE pages list only the php:7.4 and php:8.2 streams for Oracle Linux 8Oracle CVE-2026-109618

Rocky Linux, Oracle Linux and AlmaLinux publish their own advisories, so their status can differ from Red Hat’s and from stream to stream, as in the table.

Amazon Linux

DistributionPHP package / streamFixed package (or newer)Advisory
Amazon Linux 2023php8.28.2.35-1.amzn2023.0.1ALAS2023-2026-3301
Amazon Linux 2023php8.38.3.36-1.amzn2023.0.1ALAS2023-2026-3302
Amazon Linux 2023php8.48.4.27-1.amzn2023.0.1ALAS2023-2026-3303
Amazon Linux 2023php8.58.5.12-1.amzn2023.0.1ALAS2023-2026-3304
Amazon Linux 2027 Previewphp8.58.5.12-1.amzn2027.0.1ALAS2027-2026-243
Amazon Linux 2023php8.1No fixed package. Amazon: “No Fix Planned”Amazon CVE-2026-109618
Amazon Linux 2php (amazon-linux-extras php8.2)8.2.35-1.amzn2.0.1ALAS2PHP8.2-2026-015
Amazon Linux 2php (AL2 core repository)No fixed package. Amazon: “No Fix Planned”. Amazon gives no statement for the other extras streamsAmazon CVE-2026-109618

Remi repository

Remi’s repository has PHP builds dated 2026-10-21 for Enterprise Linux 8, 9 and 10 on the upstream fixed versions. Remi does not name the CVEs, so the fix is identified by the upstream version number. Module streams are php:remi-8.2 to php:remi-8.5 (EL 8/9) and the php82-php to php85-php packages.

PHP branchEL 8 (or newer)EL 9 (or newer)EL 10 (or newer)
8.58.5.12-1.el8.remi8.5.12-1.el9.remi8.5.12-1.el10.remi
8.48.4.27-1.el8.remi8.4.27-1.el9.remi8.4.27-1.el10.remi
8.38.3.36-1.el8.remi8.3.36-1.el9.remi8.3.36-1.el10.remi
8.28.2.35-1.el8.remi8.2.35-1.el9.remi8.2.35-1.el10.remi

The modular php package is named like php-8.4.27-1.module_php.8.4.el9.remi, which compares higher than the version in the table. Remi is a volunteer-maintained third-party repository, not a distro vendor. Source: Remi repository listing. The upstream numbers that count as fixed are the four in the short answer, from the php.net changelog.

Step 1: Identify what you run

cat /etc/os-release | head -n 3
dnf list installed 'php*'          # the last column shows the repo: appstream, remi, amazonlinux...
dnf module list --enabled php      # EL8/EL9 only: which stream is enabled

The repo column tells you which vendor’s advisory applies. Packages from appstream/baseos follow your distro; remi-* repos follow Remi.

PHP usually runs as PHP-FPM (service php-fpm) behind nginx or Apache. With Apache and mod_php, PHP runs inside httpd instead, and php.net rates that setup highest risk. Know which one you have, because it decides what to restart in step 4.

Step 2: Check whether a fixed package exists

Find your row in the tables above. Then, on the server, refresh the metadata and look at what is on offer:

sudo dnf clean expire-cache
sudo dnf check-update 'php*'      # on Amazon Linux 2023 add --releasever=latest (see below)

An empty result means no newer PHP package is available to you. That is expected for the streams marked “None yet” or “Not confirmed” in the tables. If a PHP package is listed, compare its version-release with the fixed package in your row (or confirm the vendor advisory names CVE-2026-109618 and CVE-2026-109619) before you treat it as the fix. An unrelated PHP update does not count.

Step 3: Update

Take a snapshot or backup first (VM snapshot, EBS snapshot or AMI on EC2). Do this above all if you are changing stream or major version.

RHEL, AlmaLinux, Rocky Linux, Oracle Linux 8 and 9

An update stays inside your enabled module stream. Where the table shows a fixed package for your stream, this is the fix:

sudo dnf upgrade --refresh 'php*'

Not every stream has a fix yet: RHEL 9 php:8.4 and Rocky Linux 9 php:8.4 have none, and neither do the Oracle Linux 9 streams other than php:8.2 and php:8.3. On Rocky Linux 8 and Oracle Linux 8 only php:7.4 and php:8.2 have an advisory; we found none for their other streams. AlmaLinux has published advisories for 9 php:8.3 and 8 php:7.4 only, so on its other AlmaLinux 8 and 9 streams (including 9 php:8.2, whose advisory lists no php package) we have no confirmed fix. On those, re-run the commands above each day. Moving to another stream means a different PHP version for your application, so switch only if you can test it first, for example from php:8.4 to a stream that has a fixed build on your distribution:

sudo dnf module list php
sudo dnf module switch-to php:8.3    # pick a stream with a fixed build in the table; read the plan before confirming

Moving off php:7.4 on RHEL 8 is worth planning anyway (upstream end-of-life since November 2022, per php.net/eol.php), but the fixed php:7.4 build in the table is Red Hat’s own back-port.

RHEL, AlmaLinux, Rocky Linux, Oracle Linux 10

Use package names rather than module streams. Both php (PHP 8.3) and php8.4 have fixed builds on RHEL, AlmaLinux, Rocky Linux and Oracle Linux 10:

sudo dnf upgrade --refresh 'php*'

Amazon Linux 2023

AL2023 locks each system to a release version, so a plain dnf upgrade can report nothing to do even when newer packages exist (AWS docs). Look at what the latest release would change, then apply it:

sudo dnf check-update --releasever=latest --security
sudo dnf upgrade --releasever=latest

AWS recommends installing the whole release rather than picking packages. If you must update only PHP, keep --releasever=latest and add the package names, for example sudo dnf upgrade --releasever=latest 'php8.3*'. That leaves the system-release package, and so your release lock, unchanged (AWS: selective update). AWS has published fixes for php8.2 to php8.5 (ALAS2023-2026-3301 to -3304). php8.1 has no fix: Amazon lists it as “No Fix Planned”, so plan a move to a newer PHP branch.

Amazon Linux 2

Only the amazon-linux-extras php8.2 stream has a fix (8.2.35-1.amzn2.0.1, ALAS2PHP8.2-2026-015):

sudo yum clean metadata
sudo yum update 'php*'

The PHP in the core AL2 repository is listed by Amazon as “No Fix Planned”, and Amazon gives no statement for the other extras streams. If you run either, plan a move to a PHP build that has a fix, such as the php8.2 extras stream or Amazon Linux 2023.

Remi repository (EL 8/9/10)

dnf module list php                  # EL8/EL9 only: [e] marks the enabled stream, e.g. php:remi-8.4
sudo dnf upgrade --refresh 'php*'

Remi’s wizard at rpms.remirepo.net/wizard gives the exact commands for your OS and PHP version. Remi’s multi-version installs name packages and services with the version in them, so adjust the php-fpm service name in the next step to match what systemctl list-units 'php*' shows. Remi’s package listing does not name the CVEs, so check the installed version against the Remi table above.

Step 4: Restart

An updated package does not protect you until the running processes are replaced.

sudo systemctl try-restart php-fpm httpd
systemctl is-active php-fpm httpd nginx    # confirm what is running

try-restart only restarts services that are already running. nginx does not need a restart for a PHP update when it talks to PHP-FPM. If PHP runs in a container, pull or rebuild the image and recreate the container instead.

Step 5: Verify

rpm -q php-fpm php-cli                               # names differ on AL2023 (php8.3-fpm) and Remi multi-version (php84-php-fpm)
rpm -q --changelog $(rpm -qa 'php*-common') \
  | grep -m5 -iE 'CVE-2026-10961[89]|8\.(2\.35|3\.36|4\.27|5\.12)'
  • Compare the full version-release that rpm -q prints with the fixed version in the tables above or in the vendor advisory. That comparison is the authority, not php -v.
  • A changelog hit naming the CVEs (or, for Remi, a build based on a fixed upstream version) is a quick second check. No hit does not prove you are vulnerable, but it means you have not confirmed a fix.
  • Enter your distro release and package version in our checker to compare against the table, and see hosting status if you are on shared or managed hosting instead.

If your stream has no fixed package yet

This applies to the rows marked “No fixed package”, “Not confirmed” or “No Fix Planned” above.

  • Run the update commands daily, or subscribe to your vendor’s security announcements, so you apply the fix when it ships.
  • Read the interim measures on the php.net advisory. They reduce exposure only and are no substitute for the update.
  • Keep SELinux and your firewall as they are. Do not loosen them while waiting.
  • Building PHP from php.net source is possible, but you then own every later update and any breakage with your extensions. Do not do it just to get a version number. Distro fixes arrive as back-ports.

Need it done for your exact setup?

If you would rather not work out the right stream, repo and restart order yourself, there is a $49 personal patch plan: written steps for your exact setup by email within 24h. See the fix service.

Tell a colleague

Copy this message and send it by chat or email.

The php2shell vulnerabilities in PHP are rated critical. The official fixed versions are PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35. Please check which PHP version you run: https://php2shellcheck.com/

Email updates

Get an email when the fix status changes

One short email, only when an official source changes a fixed version or a vendor's status. Every email links the source.

We store your address and language until you unsubscribe. Details in the privacy policy. No email? Follow the RSS feed.