PHP2Shell Investigation Maps Exploit Tooling and Reported PAN-OS Compromises

· Original article ↗

Summary

Hunt IO mapped 616 PHP2Shell-related files and analyzed exploit kits and operator activity. Dream Research reported PHP2Shell and Fragnesia were used to root 25 PAN-OS servers; Unit 42 later reported verifying the tooling and results.

Key points

  • Hunt IO found 616 PHP2Shell-related files in indexed open directories, including cloned proof-of-concepts, custom heap exploits, scanners, and post-exploitation tools; exposed tooling alone does not prove a target was hit.
  • A byte-identical ASLR-bypass kit appeared on four hosts. Operator logs showed it executing a shell as www-data in lab environments, not confirmed production victims.
  • Dream Research reported attackers chained PHP2Shell with the Fragnesia privilege-escalation vulnerability (CVE-2026-46300) to obtain root access on 25 PAN-OS servers; Unit 42 later reported verifying the tooling and results.
  • Dream Research said the campaign identified about 19,000 internet-facing firewalls, found around 5,000 responsive devices, and narrowed the targets to 240 before the reported compromises.
  • watchTowr, 0x4D31, and GreyNoise reported shell execution in honeypots or sensors. Wiz and CrowdStrike reported no end-to-end exploitation in their own telemetry.
  • The article found no evidence of reliable mass compromise across the open internet. In one government-target attempt, PHP2Shell failed and the operator later used a different vulnerability.
  • Recommended defenses include upgrading to patched PHP versions, disabling session.upload_progress.enabled as a temporary measure, and monitoring for suspicious multipart requests and web-server workers spawning shells.

Article Details

Attack Vectors
  • PHP2Shell exploits CVE-2026-109618 and CVE-2026-109619 through multipart uploads and PHP session.upload_progress, corrupting memory to pursue unauthenticated remote code execution.
  • Where a local file inclusion vulnerability already exists, operators can write PHP code into a session file through session.upload_progress and trigger it through the include bug.
  • A custom implementation adapted PHP2Shell to PAN-OS management interfaces; the reported campaign then used CVE-2026-46300 (Fragnesia) to escalate from web-server execution to root.
  • Operators used reconnaissance and scanning to identify and narrow internet-facing PAN-OS targets. The article reports one campaign selecting 240 targets from approximately 19,000 identified firewalls.
  • A captured dropper retrieved a second-stage payload with wget or curl and made an HTTP beacon to an integer-encoded IP address.
Defensive Notes
  • Upgrade PHP to 8.2.35, 8.3.36, 8.4.27, or 8.5.12, as appropriate, to address CVE-2026-109618 and CVE-2026-109619.
  • If patching is delayed, disable session.upload_progress.enabled in php.ini.
  • Alert on multipart POSTs with no User-Agent, a short boundary, and an oversized PHPSESSID cookie; correlate repeated multipart POSTs to the same PHP endpoint.
  • Alert when apache2 or php-fpm workers spawn /bin/sh, and monitor for outbound connections from those workers to raw IP addresses without SNI.
  • Patch or restrict PAN-OS management interfaces and monitor for exploitation attempts and privilege escalation.

Indicators of compromise

TypeIndicatorContext
IPV4101[.]133[.]233[.]159Host serving the shared 9bie ASLR-bypass kit and a scanner; operator logs showed lab execution as www-data.
IPV4130[.]12[.]180[.]89Host containing logs of failed PHP2Shell attempts against a government target before the operator pivoted to another vulnerability.
IPV4130[.]94[.]67[.]235Host serving a PHP2Shell exploit-chain adaptation targeting PAN-OS management interfaces.
IPV4144[.]217[.]161[.]236Staging host associated with PHP2Shell tooling and staged government-finance targets.
IPV415[.]204[.]59[.]70Confirmed source of PHP2Shell honeypot shells and post-exploitation staging; its dropper retrieved a second stage and beaconed back to this host.
IPV4152[.]42[.]245[.]8Staging host associated with PHP2Shell tooling and staged commercial targets.
IPV4162[.]35[.]99[.]94Confirmed source of PHP2Shell honeypot shells; its open directory also contained a separate Metabase/H2 RCE gadget.
IPV418[.]136[.]195[.]202Host staging a cloned PHP2Shell proof of concept and exploit documentation.
IPV4185[.]242[.]106[.]140Operational toolkit host containing PHP2Shell exploit scripts, scanners, and a log cleaner.
IPV42[.]59[.]133[.]151Reported source of five PHP2Shell shells on GreyNoise sensors.
IPV4208[.]115[.]245[.]102Host in a staging cluster serving cloned PHP2Shell PoCs and a running exploit copy.
IPV4208[.]115[.]245[.]98Host in a staging cluster serving cloned PHP2Shell PoCs and a running exploit copy.
IPV4208[.]115[.]245[.]99Host in a staging cluster serving cloned PHP2Shell PoCs and a running exploit copy.
IPV423[.]27[.]25[.]75Staging host associated with PHP2Shell tooling and staged education and commercial targets.
IPV434[.]146[.]20[.]31Host serving the shared 9bie ASLR-bypass kit; operator logs showed lab execution as www-data.
IPV438[.]60[.]136[.]217Host serving the shared 9bie ASLR-bypass kit; operator logs showed lab execution as www-data.
IPV445[.]225[.]135[.]53Host identified as an SMTP/XXE operator and PHP2Shell scanner.
IPV445[.]39[.]190[.]176Development and staging host containing PHP2Shell exploit tooling, including a session-LFI exploit.
IPV485[.]121[.]179[.]129Exploit-development host containing PHP2Shell heap-exploit research and logs showing a working address leak.
IPV496[.]126[.]130[.]81Host serving a variant of the shared 9bie ASLR-bypass kit, with lab RCE evidence.
SHA2561c93ea48fa7ff886a6d81e44869dd7962309e95d01c1561df362b0b18007a562SHA-256 of panos_rce_poc.py, the PAN-OS-focused PHP2Shell exploit.
SHA2562d692ee6dcb41c249c55881897b7dec0550b92963e07fccdb11ad655601977c3SHA-256 of the sc.py PHP2Shell heap RCE tool.
SHA2564a1502affa36d106d5374bf02cf777956eef651176ec8964b26ff90f103dd506SHA-256 of poc.sql, the separate Metabase/H2 RCE gadget found on 162.35.99[.]94.
SHA256535b9e298defd3449ba2b10b9828925d3ce344872dcbd9470c0e8db20f0aae83SHA-256 of the murrez PHP2Shell poc.py exploit.
SHA2565e99d6023dce9bb18d845a37fcdbc7ea574fdb20ab8d888ec54c695382d46036SHA-256 of aslr_run.py, the leak tool associated with the shared 9bie kit.
SHA25666bcbc8c2b9d847a1e976e57972e10eac98e9b894cbf30510bff1e8d63efb81fSHA-256 of a PHP2Shell-related scanner.
SHA2566f84cc354b785157983efa8f4b674d2e1d6c3331017f29ff8d51bc43668d4b0fSHA-256 of the shared session-LFI exploit, identified as vcript.py / chain_a_session_lfi.py.
SHA2569c15dc5a510bf2e8a16c846e61fa35c50ef733b72d4e47b6e8307498a398443cSHA-256 of a README associated with the PHP2Shell exploit tooling.
SHA256c1e81cfbaf7e4cccad7d7f43c1a624b791ba1b7f1d176e224455138604837b4cSHA-256 of the shared 9bie ASLR-bypass exploit found across multiple hosts.

MITRE ATT&CK

CVE

People

Vendors

Products

Tools

Countries

Industries

Related Articles