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 withRLimitMEMoperating-system memory ceilings forces premature allocator failures inside the PHP engine. - Unbounded
memory_limit = -1Overrides: Application-levelini_set('memory_limit', '-1')calls or per-directory.htaccess/.user.inioverrides allow untrusted requests to exhaust physical host RAM. - Floating Container Tags: Dockerfiles pinned to
php:8.3-fpmorphp:8.2-apachewithout 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
- 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.
- Isolate SAPI Workers: Migrate legacy Apache
mod_phpworkloads to isolated PHP-FPM pools and removeRLimitMEMdirectives from Apache virtual hosts. - Lock Down INI Overrides: Deploy our defensive
99-php2shell-mitigate.inidrop-in to enforce conservativememory_limit = 128Mbounds, disable dangerous process-execution primitives where unused, and block.htaccessmemory overrides while patching completes.
