PHP Security · Public Zero-Days

PHP2Shell, Part Two

The October 21 release closed two holes and left questions open. Independent research now shows more of them survive the patch, and not only in PHP core. They are public now, with working exploit code and no vendor fix.

RedEye Security  |  October 24, 2026  |  4 min
Editorial hero illustration
CVEs in this postCVE-2026-109618CVE-2026-109619CVE-2026-115560Live detections →All RedEye CVEs →
Public Zero-Days · Exploit Code OutPHP · Ubuntu · NativePHP
Research reports several weaknesses that persist after the October 21 PHP releases, spanning PHP core, Windows PHP, a NativePHP framework path, and an unpatched PHP package on Ubuntu 22.04 LTS.
Access
Unauthenticated RCE
Patch Status
None yet
Mitigation
No full fix yet
TL;DR
  • What: PHP's October 21 releases fixed two critical PHP2Shell RCEs (CVE-2026-109618 and CVE-2026-109619). A third path, CVE-2026-115560, remained unpatched. New independent research reports further weaknesses that survive those releases.
  • Status: These are now public zero-days. Working exploit code is published and no vendor fix exists yet, so treat exposed systems as urgent.
  • Where: Additional session and serialization weaknesses in PHP core, a Windows-specific file-handling path, a framework-level path in NativePHP apps, and a PHP package on Ubuntu 22.04 LTS that never received the October fixes.
  • Mitigation: Keep the October 21 fixes in place. Setting session.upload_progress.enabled=0 reduces exposure on one path but does not close every path, so it is a stopgap, not a complete fix. The full fixes are the upstream releases still to come.
  • Who is at risk: PHP sites, Ubuntu 22.04 LTS hosts still on the unpatched package, and NativePHP mobile apps. Apply each vendor's fix as it ships.

On October 21, PHP shipped an emergency release that closed the two critical remote-code-execution flaws known as PHP2Shell, CVE-2026-109618 and CVE-2026-109619. A third path, CVE-2026-115560 in the session upload progress feature, was acknowledged and left without a fixed release. We wrote about that gap and said part two was coming. This is it.

The picture has changed since we first wrote. The research is public, and it ships working exploit code. The most serious items are unauthenticated remote code execution, which means an attacker needs no login to run commands on an exposed server. Exploit code being public with no vendor fix is what makes this urgent, even though CVE assignment and full vendor confirmation are still pending.

What the research shows

The work is the researcher acd421's. They took the October patch apart and kept going, and the result is a set of issues that survive the current releases rather than a rehash of the two that were fixed. The findings fall into four groups:

These are researcher-reported and, at the time of writing, not all vendor-confirmed. The full technical detail sits with the researcher's own disclosure: acd421's public disclosure. We are not reproducing exploit detail here.

What to do while fixes land

Where RedEye stands

We reported these to PHP, Canonical, and the NativePHP maintainers in good faith ahead of public disclosure, so the people who can fix them had notice first. We are not assigning CVE IDs for these; our CNA scope is our own product, and assignment belongs to each vendor. We did not do the discovery, and we are crediting the research to acd421. We will update this page as fixes ship and as advisories publish.

Questions about your exposure?

RedEye Security provides assessments for organizations that need to understand their real risk.

Talk to us