CVE-2026-109619: PHP Stale Internal Request-State RCE Vulnerability
CVE-2026-109619 is a high-severity vulnerability in PHP that allows unauthenticated remote code execution due to improper handling of global state and request memory. This flaw affects multiple PHP versions and products, including Palo Alto Networks PAN-OS, and is actively exploited by various threat actors, including DPRK-linked groups and ransomware gangs, often leveraging `PHP2Shell` exploitation.
| IP | 103.216.220.92 |
| IP | 31.223.184.166 |
| IP | 37.19.200.5 |
| IP | 134.209.159.64 |
| IP | 103.114.163.188 |
| IP | 95.217.98.37 |
| IP | 92.118.112.100 |
| IP | 85.11.167.243 |
| IP | 45.198.224.169 |
| IP | 109.71.252.97 |
| IP | 221.14.159.134 |
| IP | 91.90.123.25 |
| SHA256 | 0c5486f06620e26e316f4b33f318b0d646d5e1133789331aa2fed012360d1486 |
| SHA256 | 43898a0a53bbd25d31ad9f5018ed3182be98a66109b22c9cab545a9fc447992a |
| SHA256 | 7bc41ed79a9ae909927a9e40701736460a8cb70fca16ce1510e58677aca764b6 |
| SHA256 | 150ae88f0999032e2a6113501d6082f54a3ed98d02427b21a96e773a27d7bf16 |
| SHA256 | 40caf199ca1ebe056a74427f8e9db06c66899e33ae09c0ec2769ec70bf6dd8e7 |
| SHA256 | 27d926a6708d6769d97d065e7a5a860ab496eab272c03d1cebc55ec71b954fa2 |
| SHA256 | 1485e14e0f62bc94664eec341cabd275dad7d30b1d496c40ec340c9a0d9f0ba8 |
| URL | https://fedi.katze.sh/@elise/117479383739450605 |
| URL | https://fedi.katze.sh/@elise/117478655339557825 |
Overview
CVE-2026-109619 is a high-severity vulnerability in PHP that enables unauthenticated remote code execution. The flaw stems from stale internal request-state, allowing attackers to manipulate freed memory. This vulnerability affects a wide range of PHP versions and products, including critical network devices, and is being actively exploited by threat actors, including state-sponsored groups and ransomware operators, often in conjunction with PHP2Shell exploitation.
Technical Analysis
- Vulnerability:
CVE-2026-109619is a stale internal request-state vulnerability in PHP. - Mechanism: PHP contains various global state variables that temporarily point to request memory. In certain scenarios, this global state may not be correctly reset or may be repopulated after being reset, leading to it referring to freed request memory. Subsequent requests can then read or branch on this stale state before it is fully initialized.
- Impact: Multiple strategies can trigger this condition, leading to unauthenticated remote code execution (RCE).
- CVSS v3.1: 8.1 (HIGH) –
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H. - Weaknesses:
CWE-416(Use After Free),CWE-755(Improper Handling of Exceptional Conditions),CWE-824(Access of Uninitialized Pointer),CWE-1325(Unchecked Return Value to NULL Pointer Dereference). - Affected Versions:
- PHP
phpversions>= 5.4.0 < 8.2.35 - PHP
phpversions>= 8.3.0 < 8.3.36 - PHP
phpversions>= 8.4.0 < 8.4.27 - PHP
phpversions>= 8.5.0 < 8.5.12 - Siemens
ruggedcom_ape1808_firmware - Palo Alto Networks
pan-osversions>= 10.2.0 < 10.2.7 - Palo Alto Networks
pan-osversion10.2.7 - Palo Alto Networks
pan-osversion10.2.8 - Palo Alto Networks
pan-osversion10.2.9 - Palo Alto Networks
pan-osversion10.2.10
- PHP
- Attack Vector: Network-based (AV:N), unauthenticated (PR:N), requiring no user interaction (UI:N). The attack complexity is high (AC:H).
Detection
- Monitor web server access logs for unusual requests to PHP files, especially those with suspicious parameters, encoded commands, or patterns indicative of
PHP2Shellexploitation. Look for unexpected HTTP methods or large POST bodies to unusual endpoints. - Detect unexpected process spawns originating from web server processes (e.g.,
php-fpm.exe,httpd.exe,nginx.exe,apache2,php-fpm) or their child processes. Look forcmd.exe,powershell.exe,sh,bash,python,perl,nc,wget,curl, or other command-line utilities. - Monitor for the creation of suspicious files (e.g.,
.php,.txt,.logfiles containing web shell code) in web-accessible directories (/var/www/html,htdocs,wwwroot). Look for files containing common web shell keywords likeeval(,system(,passthru(,shell_exec(,base64_decode(,$_GET[,$_POST[, orPHP2Shellspecific strings. - Analyze network flow logs for outbound connections initiated by web server processes to unusual or external IP addresses/domains, indicative of C2 communication or data exfiltration.
- Review PHP error logs for unexpected errors or warnings that might indicate exploitation attempts or memory corruption.
Sigma Detection Rules
Web Server Process Spawning Suspicious Shell
title: Web Server Process Spawning Suspicious Shell
id: 90c7e2b1-d3f4-4a8e-a2c3-f0e2b1d3f4a8
status: experimental
description: Detects suspicious process creation by common web server processes, indicative of RCE exploitation of CVE-2026-109619.
logsource:
product: windows
service: sysmon
detection:
selection_parent:
ParentImage|endswith:
- '\\httpd.exe'
- '\\nginx.exe'
- '\\php-fpm.exe'
selection_child:
Image|endswith:
- '\\cmd.exe'
- '\\powershell.exe'
- '\\sh.exe'
- '\\bash.exe'
- '\\python.exe'
- '\\perl.exe'
- '\\nc.exe'
- '\\wget.exe'
- '\\curl.exe'
condition: all of selection_*
level: critical
Suspicious PHP File Creation in Web Root
title: Suspicious PHP File Creation in Web Root
id: 4f1c7e2b-d3f4-4a8e-a2c3-f0e2b1d3f4a8
status: experimental
description: Detects creation of new PHP files in web-accessible directories by web server processes, potentially indicating webshell deployment (e.g., PHP2Shell) after CVE-2026-109619 exploitation.
logsource:
product: windows
service: sysmon
detection:
selection:
EventID: 11
Image|endswith:
- '\\httpd.exe'
- '\\nginx.exe'
- '\\php-fpm.exe'
TargetFilename|endswith:
- '.php'
- '.phtml'
- '.php5'
TargetFilename|contains:
- '\\inetpub\\wwwroot\\'
- '\\Apache24\\htdocs\\'
- '\\nginx\\html\\'
- '\\www\\html\\'
condition: selection
level: high
Web Access Log – Generic PHP RCE Attempt
title: Web Access Log - Generic PHP RCE Attempt
id: 7e2b1d3f-4a8e-a2c3-f0e2b1d3f4a8
status: experimental
description: Detects common patterns in web access logs indicative of PHP RCE attempts, potentially targeting CVE-2026-109619. This rule may produce false positives and requires tuning.
logsource:
category: webserver
service: apache
detection:
selection:
cs-uri-query|contains:
- 'cmd='
- 'exec='
- 'system='
- 'passthru='
- 'shell_exec='
- 'eval='
- 'base64_decode='
- 'id%20'
- 'whoami%20'
- 'cat%20/etc/passwd'
- 'wget%20'
- 'curl%20'
cs-uri-stem|endswith:
- '.php'
- '.phtml'
- '.php5'
condition: selection
level: medium
Mitigations
- Patch PHP: Upgrade PHP installations to the latest patched versions:
8.2.35,8.3.36,8.4.27,8.5.12, or newer, as soon as possible. - Patch Affected Products: Apply vendor-specific patches for Siemens
ruggedcom_ape1808_firmwareand Palo Alto Networkspan-osto versions that addressCVE-2026-109619. - Implement Web Application Firewall (WAF): Deploy and configure a WAF to detect and block exploitation attempts targeting PHP vulnerabilities, including known
PHP2Shellpatterns and generic RCE payloads. - Least Privilege: Ensure PHP processes and web servers run with the minimum necessary privileges to limit the impact of successful exploitation.
- Network Segmentation: Isolate web servers running PHP applications from critical internal networks to contain potential breaches.
- Regular Audits: Conduct regular security audits and penetration tests of PHP applications and underlying infrastructure to identify and remediate vulnerabilities.
References
- https://nvd.nist.gov/vuln/detail/CVE-2026-109619
- https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp
- http://www.openwall.com/lists/oss-security/2026/10/21/16
- https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/
- https://hunt.io/blog/php2shell-cve-2026-109618-109619-open-directories
- https://aws.amazon.com/blogs/security/amazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot/
- https://www.vulncheck.com/blog/php2shell-vulnerabilities
- https://socradar.io/blog/inc-gentlemen-ransomware-ai-infrastructure
Indicators of Compromise
| Type | Value | Description |
|---|---|---|
| SHA256 | 0c5486f06620e26e316f4b33f318b0d646d5e1133789331aa2fed012360d1486 |
PHP2Shell second-stage ELF x86-64 binary hash (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| SHA256 | 1485e14e0f62bc94664eec341cabd275dad7d30b1d496c40ec340c9a0d9f0ba8 |
Hash of follow-up POST request body (via https://www.vulncheck.com/blog/php2shell-vulnerabilities) |
| SHA256 | 150ae88f0999032e2a6113501d6082f54a3ed98d02427b21a96e773a27d7bf16 |
Hash of uploaded file part ‘a’ (via https://www.vulncheck.com/blog/php2shell-vulnerabilities) |
| SHA256 | 27d926a6708d6769d97d065e7a5a860ab496eab272c03d1cebc55ec71b954fa2 |
Hash of uploaded file part ‘b’ (via https://www.vulncheck.com/blog/php2shell-vulnerabilities) |
| SHA256 | 40caf199ca1ebe056a74427f8e9db06c66899e33ae09c0ec2769ec70bf6dd8e7 |
Hash of uploaded file part ‘a’ (via https://www.vulncheck.com/blog/php2shell-vulnerabilities) |
| SHA256 | 43898a0a53bbd25d31ad9f5018ed3182be98a66109b22c9cab545a9fc447992a |
PHP2Shell scanner/OOM-tool HTTP request body hash (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| SHA256 | 7bc41ed79a9ae909927a9e40701736460a8cb70fca16ce1510e58677aca764b6 |
PHP2Shell scanner/OOM-tool HTTP request body hash (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| IP Address | 103.114.163.188 |
PHP2Shell-associated anonymisation network IP (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| IP Address | 103.216.220.92 |
PHP2Shell-associated anonymisation network IP (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| IP Address | 109.71.252.97 |
PHP2Shell scanner/exploitation IP (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| IP Address | 134.209.159.64 |
PHP2Shell-associated anonymisation network IP (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| IP Address | 221.14.159.134 |
Exploitation attempt IP for CVE-2026-109618 (via https://www.vulncheck.com/blog/php2shell-vulnerabilities) |
| IP Address | 31.223.184.166 |
PHP2Shell-associated anonymisation network IP (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| IP Address | 37.19.200.5 |
PHP2Shell-associated anonymisation network IP (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| IP Address | 45.198.224.169 |
PHP2Shell scanner/exploitation IP (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| IP Address | 85.11.167.243 |
PHP2Shell scanner/exploitation IP (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| IP Address | 91.90.123.25 |
Verification IP for CVE-2026-109618 (via https://www.vulncheck.com/blog/php2shell-vulnerabilities) |
| IP Address | 92.118.112.100 |
PHP2Shell second-stage payload staging host IP (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| IP Address | 95.217.98.37 |
PHP2Shell-associated anonymisation network IP (via https://www.cyfirma.com/research/cyfirma-threat-advisory-suspected-dprk-campaign-staging-php2shell-targeting-against-glocal-php-infrastructure/) |
| URL | https://fedi.katze.sh/@elise/117478655339557825 |
Fediverse post discussing a different PHP vulnerability (via http://www.openwall.com/lists/oss-security/2026/10/21/17) |
| URL | https://fedi.katze.sh/@elise/117479383739450605 |
Fediverse post reporting incomplete PHP fix (via http://www.openwall.com/lists/oss-security/2026/10/21/17) |
MITRE ATT&CK
T1190— Exploit Public-Facing ApplicationT1059.004— Unix ShellT1059.003— Windows Command ShellT1505.003— Web ShellT1590.005— IP AddressesT1053.003— CronT1005— Data from Local SystemT1608.001— Upload MalwareT1595.002— Vulnerability ScanningT1583.004— ServerT1098.004— SSH Authorized KeysT1552.001— Credentials In FilesT1041— Exfiltration Over C2 ChannelT1210— Exploitation of Remote ServicesT1486— Data Encrypted for ImpactT1496— Resource HijackingT1105— Ingress Tool TransferT1588.005— ExploitsT1592— Gather Victim Host InformationT1133— External Remote ServicesT1071.004— DNST1036.005— Match Legitimate Resource Name or LocationT1499.004— Application or System ExploitationT1071— Application Layer ProtocolT1036— MasqueradingT1595— Active ScanningT1090.002— External ProxyT1090— ProxyT1059— Command and Scripting InterpreterT1078— Valid AccountsT1573— Encrypted ChannelT1592.002— SoftwareT1203— Exploitation for Client ExecutionT1499— Endpoint Denial of ServiceT1059.006— PythonT1071.001— Web ProtocolsT1046— Network Service DiscoveryT1082— System Information DiscoveryT1583.003— Virtual Private ServerT1102— Web ServiceT1562.001— Disable or Modify ToolsT1070.004— File DeletionT1021— Remote ServicesT1083— File and Directory DiscoveryT1136— Create AccountT1018— Remote System DiscoveryT1003.003— NTDST1021.001— Remote Desktop ProtocolT1567.002— Exfiltration to Cloud StorageT1587.001— MalwareT1489— Service StopT1087.002— Domain AccountT1053.005— Scheduled TaskT1219— Remote Access ToolsT1558.003— KerberoastingT1583.001— DomainsT1135— Network Share DiscoveryT1059.001— PowerShellT1588.002— ToolT1490— Inhibit System RecoveryT1110— Brute ForceT1204.002— Malicious FileT1114.001— Local Email CollectionT1572— Protocol TunnelingT1021.002— SMB/Windows Admin SharesT1072— Software Deployment ToolsT1566.001— Spearphishing AttachmentT1070.006— TimestompT1074.001— Local Data StagingT1555.003— Credentials from Web BrowsersT1056.002— GUI Input CaptureT1003.006— DCSyncT1057— Process DiscoveryT1591— Gather Victim Org InformationT1056.001— KeyloggingT1555— Credentials from Password StoresT1132.001— Standard EncodingT1566.002— Spearphishing LinkT1573.001— Symmetric CryptographyT1218.011— Rundll32T1497.001— System ChecksT1539— Steal Web Session CookieT1027— Obfuscated Files or InformationT1102.002— Bidirectional CommunicationT1140— Deobfuscate/Decode Files or InformationT1055.012— Process HollowingT1110.001— Password GuessingT1087.001— Local AccountT1021.004— SSHT1040— Network SniffingT1567— Exfiltration Over Web ServiceT1552— Unsecured CredentialsT1552.004— Private KeysT1087— Account DiscoveryT1087.004— Cloud Account
Generated by
gemini-2.5-flash ·2,763 input / 2,653 output tokens ·
Reviewed and approved by a human analyst before publication