
How to patch PHP2Shell with free Aikido Images
Aikido Images are free patched PHP container images on public ECR (public.ecr.aws/aikido-dev/php) that backport the PHP2Shell fixes for CVE-2026-109618 and CVE-2026-109619 into release lines 5.5 to 8.5, except 8.0. Upstream fixed 8.2 to 8.5 in October 2026 and left 8.1 and older unpatched. The post shows docker pull and Dockerfile FROM changes, then rebuild, restart, session.upload_progress.enabled=0 and compromise checks.
What it is
Aikido Images are free patched PHP container images on public ECR (public.ecr.aws/aikido-dev/php) that carry the PHP2Shell fixes for CVE-2026-109618 and CVE-2026-109619. Both CVEs score 9.2 on CVSS v4.0, and either lets an unauthenticated attacker run code on a server that handles PHP requests. Cloudflare reports that exploitation has started.
Preconditions / Affected
PHP fixed 8.2 to 8.5 on 21 October 2026, in 8.5.12, 8.4.27, 8.3.36 and 8.2.35. PHP 8.1 and older are out of support and get no upstream release. Aikido covers every release line from 5.5 to 8.5 except 8.0. Some lines, such as 8.1, have only a few variants.
One confirmed path to CVE-2026-109619 is session.upload_progress, a rarely used legacy feature.
What to do
Choose by release line:
- PHP 8.2 or newer: update to a fixed upstream version, or switch to the matching Aikido image, which matches upstream fixes.
- PHP 8.1 and older (except 8.0): switch to the Aikido image. The backport keeps your version number, so no application port is needed first.
- PHP 8.0: no Aikido image exists. Update to a fixed PHP version, ask your vendor for a backport, or build from source using the minimal backports PHP's security team published for 7.4 through 8.1.
Tags combine version and variant. Pull example:
docker pull public.ecr.aws/aikido-dev/php:8.5.12-fpmDockerfile change:
FROM public.ecr.aws/aikido-dev/php:7.4.33-apacheThe base variant uses a plain version tag, such as php:8.2.35. Unpinned latest patched Alpine builds are php:alpine and php:fpm-alpine. Patched builds of earlier patch releases also exist (8.2.34, 8.3.35, 8.4.26, 8.5.11), so you can stay on your exact version.
After switching:
- Rebuild every image that uses PHP and redeploy. Patching a running container leaves the image exposed.
- Restart PHP-FPM and Apache workers or redeploy containers, and confirm no worker still runs the old build.
- Keep
session.upload_progress.enabled=0inphp.inior the PHP-FPM pool configuration. - Test your public URL with Aikido's free PHP2Shell checker.
- Check for signs of compromise, using the list in Aikido's separate PHP2Shell post.
Caveats
The post defers CVE mechanism details, temporary mitigations and the compromise checklist to Aikido's PHP2Shell post, so none are covered here. Aikido says more images are in preparation. The images come from a vendor selling security products, and the post gives no independent verification of the backports.
Organisations named here
- PHP2Shell
CVEs named here
- CVE-2026-109618
- CVE-2026-109619
Technologies named here
- PHP 8.5 before 8.5.12
- Aikido PHP2Shell checker
- PHP 8.4 before 8.4.27
- PHP 8.3 before 8.3.36
- PHP 8.2 before 8.2.35
- Amazon Elastic Container Registry public gallery
- PHP 8.1 and older
- PHP-FPM and Apache workers serving PHP requests
- PHP
- Docker
- Aikido Security
- Apache
Techniques named here
- Exploitation via session.upload_progress feature
- Backporting security patches into older PHP release lines
- Checking for signs of compromise after patching
Threat actors named here
- PHP2Shell
Related in DevSecOps
JFrog: The Governance Gap Between Your Policy and Your Pipeline

Dev Machine Guard Now Supports Windows - StepSecurity

Socket: TanStack npm Packages Compromised
