Hunt.io Tracks PHP2Shell Attempts After Leaked PHP RCE Flaws, Finds No Confirmed Compromises

Summary
Hunt.io traced PHP2Shell scanning and staged exploit tooling after details of two critical PHP RCE flaws leaked before patches shipped. It found no confirmed compromises; turning the bugs into code execution reportedly remains difficult.
Key points
- PHP released fixes for CVE-2026-109618 and CVE-2026-109619 in versions 8.5.12, 8.4.27, 8.3.36 and 8.2.35; both flaws were rated CVSS v4.0 9.2.
- The article describes the root cause as PHP core memory corruption during an out-of-memory bailout. Crafted multipart/form-data requests can trigger the vulnerable parsing path before application code runs.
- Hunt.io says PHP2Shell scanning began about 20 minutes after the patch shipped. Its honeypots logged two requests from one IP; as of October 21, 2026, 23:45 UTC, it had no confirmed successful compromises.
- AttackCapture contained PHP2Shell tooling in about ten workspaces. One mass-exploitation operator made ten runs against up to 123 servers and logged zero shells.
- Hunt.io reports that public tools had not demonstrated reliable code execution on real x86-64 targets; its account says exploitation requires an additional weakness or a server without address-space randomization.
- A one-day scan found 683,922 IPs exposing a PHP version in the X-Powered-By header. The article cautions that this is not a reliable count of vulnerable hosts because headers can be hidden and distributions may backport fixes without changing version strings.
- The article recommends installing the fixed PHP releases; it says WAF rules can block some attempts but should be treated as a temporary layer, not a substitute for patching.
Article Details
- Attack Vectors
- Unauthenticated, oversized multipart/form-data requests can trigger memory exhaustion and the PHP core out-of-memory corruption behind CVE-2026-109618 and CVE-2026-109619.
- Scanning and exploit attempts began after the patch was released; the article reports no confirmed successful php2shell compromise.
- An established Mirai-style IoT botnet added php2shell to its scanning kit. The reported attempts and staged tooling do not establish successful exploitation.
- Defensive Notes
- Upgrade to PHP 8.5.12, 8.4.27, 8.3.36, or 8.2.35; confirm managed-hosting providers' patch timelines.
- If patching is delayed, use a WAF as a temporary layer, not a substitute for patching. The article says Cloudflare's managed rules blocked some, but not all, attempts.
- Inventory PHP hosts, plan upgrades for unsupported branches, and check whether distribution backports have been applied rather than relying only on version strings.
- Disabling session.upload_progress is described as a useful stopgap, but the root cause is PHP's out-of-memory bailout handling.
- Look for php2shell user-agents, multipart POSTs with PHP_SESSION_UPLOAD_PROGRESS and unusually large bodies, and bursts of PHP-FPM “Allowed memory size exhausted” errors. These indicate targeting, not proof of compromise.
Indicators of compromise
| Type | Indicator | Context |
|---|---|---|
| DOMAIN | botlesscucks[.]st | Wildcard domain listed as botnet C2 infrastructure. |
| DOMAIN | gettingheadfromduckysmom[.]st | Wildcard domain listed as botnet C2 infrastructure. |
| DOMAIN | godofthunder[.]st | Wildcard domain listed as botnet C2 infrastructure. |
| DOMAIN | maste[.]mangsud[.]org | Source host from which a staged PHP backdoor was described as pulling. |
| IPV4 | 102[.]210[.]149[.]166 | Attacker workspace holding custom tooling and target lists; the operator also used it for an unrelated AVideo SQL injection. |
| IPV4 | 104[.]219[.]251[.]31 | Staging host holding a cloned php2shell PoC and ready-to-drop PHP backdoors. |
| IPV4 | 107[.]150[.]31[.]151 | Workspace where a php2shell PoC was held before the patch; the article reports no results. |
| IPV4 | 122[.]10[.]110[.]72 | Operator workspace holding php2shell tooling; the article also reports a callback to this operator after a separate Java attack. |
| IPV4 | 122[.]10[.]17[.]49 | Shared operator workspace holding php2shell tooling. |
| IPV4 | 157[.]230[.]117[.]70 | Attacker workspace holding the same public php2shell tool as 41.223.30[.]7. |
| IPV4 | 206[.]188[.]197[.]105 | Mass-exploitation server used in ten runs against up to 123 servers; no shells were logged. |
| IPV4 | 41[.]223[.]30[.]7 | Attacker workspace holding reused public php2shell tooling. |
| IPV4 | 45[.]198[.]224[.]169 | Scanner attributed to the Mirai-style IoT botnet adding php2shell to its spreading kit. |
| IPV4 | 58[.]221[.]60[.]160 | Host staging probe scripts and scanners used for php2shell surface scanning. |
| IPV4 | 85[.]11[.]167[.]243 | Reported as a second php2shell scanner. |
| IPV4 | 89[.]32[.]41[.]16 | Identified as a botnet binary host. |
| IPV4 | 89[.]32[.]41[.]50 | Identified as a botnet binary host. |
| IPV4 | 92[.]118[.]112[.]100 | Identified in the article as a payload host. |
MITRE ATT&CK
T1090 · ProxyThe mass-exploitation operator routed its tool through a roughly 97-proxy farm.T1190 · Exploit Public-Facing ApplicationOperators sent php2shell exploit requests at exposed web servers to target PHP's remote code execution vulnerabilities; no successful exploitation was confirmed.T1595.002 · Vulnerability ScanningProbe scripts and version scanners were used to identify PHP exposure and check targets for php2shell-related conditions.
CVE
CVE-2026-109618Two critical PHP remote code execution bugs, CVE-2026-109618 and CVE-2026-109619, both rated CVSS v4.0 9.2, leaked before their scheduled patch on October 21, 2026 at 14:00 UTC.CVE-2026-109619Two critical PHP remote code execution bugs, CVE-2026-109618 and CVE-2026-109619, both rated CVSS v4.0 9.2, leaked before their scheduled patch on October 21, 2026 at 14:00 UTC.
People
@an0n_r0Reported that the credible PoC depended on an unrealistic single-worker PHP-FPM setup.John HammondPublished a rapid-response writeup about php2shell.Justin ElzeReviewed 30 public GitHub repositories and reported finding no PoC that worked against a real target.Marcus HutchinsDiscussed the need for ASLR-protected memory addresses to achieve RCE with the exploit.
Vendors
Products
Tools
aslr_exploit.pyin AttackCapture, first seen 2026-10-21 21:05:54 UTC. One directory holds the exploit toolkit (aslr_exploit.py, deep_probe.py, c2.py), a proxy list, and per-target folders. Ten runs against up to 123 serversc2.pyseen 2026-10-21 21:05:54 UTC. One directory holds the exploit toolkit (aslr_exploit.py, deep_probe.py, c2.py), a proxy list, and per-target folders. Ten runs against up to 123 servers logged zero shells.What to dodeep_probe.pyfirst seen 2026-10-21 21:05:54 UTC. One directory holds the exploit toolkit (aslr_exploit.py, deep_probe.py, c2.py), a proxy list, and per-target folders. Ten runs against up to 123 servers logged zeroHunt.io Attack Capturein a header is a weak way to judge real risk, and what turned up in attacker open directories through AttackCapture.HuntSQLleak their PHP version in the X-Powered-By header. The query runs against Hunt.io's HTTP scan feed in HuntSQL, pinned to a single day so it reproduces:probe_rfc1867.pyA Code Search for php2shell across the captured open directories returns 146 matching files, here probe_rfc1867.py and verify_fixation.py with CVE-2026-109619 and the session.upload_progress trigger sitting right inverify_fixation.pyacross the captured open directories returns 146 matching files, here probe_rfc1867.py and verify_fixation.py with CVE-2026-109619 and the session.upload_progress trigger sitting right in the code. Searching
Countries
Germanywho never apply those updates, not an absence of a fix. Geography skews to the US (~1.8K), then Germany (277), Singapore (250) and the UK (202). The operator even logged 151 sites that rejected the exploitNLMass exploitation 206.188.197[.]105 (BL Networks, AS399629, NL) Mass-exploit tool routed through a ~97-proxy farm, 10 runs 19:11 to 20:23 UTC, list grown from 23 to 123 servers No code execution or shell logged,Singaporeapply those updates, not an absence of a fix. Geography skews to the US (~1.8K), then Germany (277), Singapore (250) and the UK (202). The operator even logged 151 sites that rejected the exploit request outrightUnited Kingdomnot an absence of a fix. Geography skews to the US (~1.8K), then Germany (277), Singapore (250) and the UK (202). The operator even logged 151 sites that rejected the exploit request outright with HTTP 403, 405 orUnited StatesAttackCapture pulls in attacker staging servers left exposed on the internet and lets us search inside the files. Pulling the php2shell tooling out of everything else is a one-line query: a Code Search for php2shell, or