Back to Insights

By Andrew Jennings & Dominic Serra · Published October 21, 2026 · Updated October 21, 2026

PHP2Shell (CVE-2026-109618 & CVE-2026-109619): Critical PHP RCE Advisory & Open-Source AriaWave Scanner Skill

Emergency security advisory and open-source Python 3 defensive readiness scanner + autonomous agent skill (SKILL.md) for the critical PHP2Shell out-of-memory RCE vulnerabilities (CVSS v4.0 9.2) affecting PHP < 8.5.12, < 8.4.27, < 8.3.36, and < 8.2.35.

On October 20, 2026, the PHP Group, Qualys Threat Research Unit (TRU), and NCSC-NL disclosed PHP2Shell (CVE-2026-109618 and CVE-2026-109619, rated CVSS v4.0 9.2 Critical / CVSS v3.1 8.1 High)—two critical memory-corruption vulnerabilities in the core PHP runtime that allow unauthenticated remote attackers to achieve Remote Code Execution (RCE) when out-of-memory (OOM) conditions are triggered during request handling.

Today, Aria Technology Group is releasing an open-source, zero-dependency defensive readiness scanner and autonomous agent skill (github.com/AIjennings/ariawave-php2shell-scanner) so engineering teams and AI operations agents can audit PHP runtimes, container manifests, Apache mod_php / RLimitMEM hazards, and .htaccess memory overrides in seconds.

Patched PHP Release Matrix

Every PHP deployment running below the patched October 2026 security releases is exposed to PHP2Shell memory corruption when an allocation boundary is exhausted:

PHP Branch Vulnerable Versions Patched Release Operational Guidance
PHP 8.5 < 8.5.12 8.5.12 Upgrade immediately
PHP 8.4 < 8.4.27 8.4.27 Upgrade immediately
PHP 8.3 < 8.3.36 8.3.36 Upgrade immediately
PHP 8.2 < 8.2.35 8.2.35 Security-only branch — upgrade immediately
PHP ≤ 8.1 All releases (5.x, 7.x, 8.0, 8.1) End-of-Life (No upstream fix) Migrate to PHP 8.3+ or verify distro LTS backports

Why Version Checks Alone Miss PHP2Shell Exposure

Unlike standard input-validation flaws, CVE-2026-109618 and CVE-2026-109619 trigger along out-of-memory execution paths. Three common infrastructure misconfigurations dramatically accelerate exploitation:

  • Legacy Apache mod_php + RLimitMEM: Running PHP in-process inside Apache worker processes combined with RLimitMEM operating-system memory ceilings forces premature allocator failures inside the PHP engine.
  • Unbounded memory_limit = -1 Overrides: Application-level ini_set('memory_limit', '-1') calls or per-directory .htaccess / .user.ini overrides allow untrusted requests to exhaust physical host RAM.
  • Floating Container Tags: Dockerfiles pinned to php:8.3-fpm or php:8.2-apache without explicit patch digests frequently run stale images in production Kubernetes or ECS clusters.

Open-Source Release: AriaWave PHP2Shell Scanner & Agent Skill

We open-sourced ariawave-php2shell-scanner under the MIT License—and added the skill to aria-agent-blueprints—to give DevSecOps teams and autonomous coding agents (Hermes, Claude Code, Cursor, Codex) a 100% read-only, zero-dependency Python 3 stdlib auditor:

# 1. Run deterministic self-test suite
python3 php2shell_scanner.py --selftest

# 2. Audit a specific PHP version string (JSON output)
python3 php2shell_scanner.py --php-version "8.3.35" --json

# 3. Scan web roots, Dockerfiles, and Apache/PHP-FPM configs
python3 php2shell_scanner.py --scan-dir /var/www --scan-dir /etc/apache2 --check-local-php

# 4. Generate an NCSC-NL-aligned defensive drop-in INI mitigation
python3 php2shell_scanner.py --emit-mitigation-ini ./99-php2shell-mitigate.ini

Immediate Remediation Checklist

  1. Upgrade PHP Runtimes: Patch all PHP hosts and base container images to 8.5.12, 8.4.27, 8.3.36, or 8.2.35.
  2. Isolate SAPI Workers: Migrate legacy Apache mod_php workloads to isolated PHP-FPM pools and remove RLimitMEM directives from Apache virtual hosts.
  3. Lock Down INI Overrides: Deploy our defensive 99-php2shell-mitigate.ini drop-in to enforce conservative memory_limit = 128M bounds, disable dangerous process-execution primitives where unused, and block .htaccess memory overrides while patching completes.