Skip to navigation

Threat reportVulnerabilityTL-2026-5938

Check Point Gaia/Mobile Access Exploitation (CVE-2026-109618, CVE-2026-109619, CVE-2026-123039) Leads to Root Access and destroy_v6 Wiper Deployment on VMware ESXi

criticalACTIVE

Check Point confirmed exploitation against about two dozen customers: PHP2Shell-linked flaws (CVE-2026-109618/109619) in Mobile Access portals give initial access, and a Gaia DynamicCLI local privilege escalation (CVE-2026-123039, CVSS 7.8) gives root. Attackers deployed the TSGA backdoor and TSProxy, the gogo scanner and the destroy_v6 wiper, and pivoted to VMware ESXi.

Key facts

IdentifiersTL-2026-5938, CVE-2026-109618, CVE-2026-109619, CVE-2026-123039
Also known asPHP2Shell exploitation on Check Point gateway, destroy_v6 wiper campaign
SeverityCRITICAL
CVSS7.8
First disclosed
Exploitation statusLinked CVE exploited in the wild; Listed in CISA KEV: CVE-2026-109618 (added ), CVE-2026-109619 (added )
EPSSCVE-2026-109618: 99.9% (99.9th percentile); CVE-2026-109619: 99.9% (99.9th percentile)
Affected productsCheck Point Gaia OS: Force Firewalls, Management and Log Servers, Multi-Domain Security Management / Multi-Domain Log Server, Maestro Orchestrator (incl. Mobile Access portal); Check Point Spark Firewalls and Smart-1 Cloud (not affected)
Weaknesses (CWE)CWE-862
MalwareTSGA, TSProxy, destroy_v6, tsh
Toolsgogo
MITRE ATT&CK techniquesT1005 Data from Local System, T1021.004 Remote Services: SSH, T1027 Obfuscated Files or Information, T1036 Masquerading, T1046 Network Service Discovery, T1055 Process Injection, T1059.004 Command and Scripting Interpreter: Unix Shell, T1059.006 Command and Scripting Interpreter: Python, T1068 Exploitation for Privilege Escalation, T1070 Indicator Removal, T1078 Valid Accounts, T1090 Proxy and 10 more in the attack flow
MotivationDESTRUCTION
Target sectorsgovernment administration, multiple sectors, critical infrastructure
Target regionsisrael, Global
Detection rules9 (1 shown free)
Sources6 cited sources

Detection coverage

As of 2026-11-13, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-5938 across Splunk SPL, Microsoft KQL and Sigma, covering 33 indicator(s) of compromise. The whole corpus is readable without an account. Every threat comes with one complete detection in Splunk SPL, Microsoft KQL and Sigma, free for everyone; a free account adds daily TL Creds to unlock the rest. Paid plans add a larger daily allowance, correlation and the MCP server. Threadlinqs MCP server · View plans.

Free detection: Check Point Mobile Access PHP2Shell Webshell Drop (zz*.tpl / challenge_render.tpl) — Exploitation

Detects the PHP2Shell webshell footprint left by exploitation of Check Point Mobile Access portals (CVE-2026-109618 / CVE-2026-109619): zz<random>.tpl files in the portal templates directory, hardcoded key zz2026, upload staging via /tmp/.up.tpl copied to challenge_render.tpl, PHP session marker upload_progress_pwn, and traffic from the primary attacker IPs 130.94.19.204 / 130.94.19.168. Part of the destroy_v6 wiper campaign.

  • Languages: Splunk SPL, Microsoft KQL, Sigma
  • ATT&CK: T1190, T1505.003, T1027
  • Data sources: linux:audit (auditd on Gaia), syslog (Gaia /var/log/messages), Check Point Mobile Access portal
  • Severity: critical
  • Confidence: high

Splunk SPL

index=linux (sourcetype=linux:audit OR sourcetype=syslog) earliest=-24h ("zz2026" OR "upload_progress_pwn" OR "challenge_render.tpl" OR "/tmp/.up.tpl" OR "130.94.19.204" OR "130.94.19.168" OR (type=PATH name="*/CPcvpn-*" name="*/zz*.tpl")) ```PHP2Shell webshell artifacts on Check Point Mobile Access: zz random tpl drops, hardcoded key zz2026, session marker upload_progress_pwn, staging via .up.tpl copied to challenge_render.tpl```
| eval indicator=case(like(_raw,"%upload_progress_pwn%"),"php_session_marker", like(_raw,"%zz2026%"),"webshell_hardcoded_key", like(_raw,"%challenge_render.tpl%"),"challenge_render_copy", like(_raw,"%/.up.tpl%"),"upload_staging_file", match(_raw,"130\\.94\\.19\\.(204|168)"),"report_attacker_ip", true(),"zz_random_tpl_dropped")
| stats count min(_time) as first_seen max(_time) as last_seen values(indicator) as indicators values(name) as paths by host
| eval first_seen=strftime(first_seen,"%F %T"), last_seen=strftime(last_seen,"%F %T")
| sort - count

Microsoft KQL

let AttackerIps = dynamic(["130.94.19.204", "130.94.19.168"]);
let HostHits = Syslog
    | where TimeGenerated > ago(24h)
    | where SyslogMessage matches regex @"zz2026|upload_progress_pwn|challenge_render\.tpl|/tmp/\.up\.tpl|/CPcvpn-[^ ]*/zz[A-Za-z0-9]+\.tpl"
    | extend Indicator = case(
        SyslogMessage contains "upload_progress_pwn", "php_session_marker",
        SyslogMessage contains "zz2026", "webshell_hardcoded_key",
        SyslogMessage contains "challenge_render.tpl", "challenge_render_copy",
        SyslogMessage contains "/tmp/.up.tpl", "upload_staging_file",
        "zz_random_tpl_dropped")
    | project TimeGenerated, Source = "Syslog", Computer, Indicator, Detail = SyslogMessage;
let NetHits = CommonSecurityLog
    | where TimeGenerated > ago(24h)
    | where DeviceVendor =~ "Check Point"
    | where SourceIP in (AttackerIps) or DestinationIP in (AttackerIps)
    | project TimeGenerated, Source = "CommonSecurityLog", Computer = DeviceName, Indicator = "report_attacker_ip",
        Detail = strcat(SourceIP, " -> ", DestinationIP, ":", tostring(DestinationPort));
union HostHits, NetHits
| order by TimeGenerated desc

Sigma

title: Check Point Mobile Access PHP2Shell Webshell Artifacts
id: 7c1e5a42-3b6d-4f0e-9a21-5d8c0b7e4a11
status: experimental
description: Detects PHP2Shell webshell files dropped in the Check Point Mobile Access templates directory (zz random tpl files, challenge_render.tpl, .up.tpl staging) after exploitation of CVE-2026-109618 and CVE-2026-109619.
references:
    - https://research.checkpoint.com/2026/php2shell-exploitation-on-check-point-gateway/
    - https://support.checkpoint.com/results/sk/sk1000362
author: Threadlinqs Team
date: 2026/11/13
tags:
    - attack.initial_access
    - attack.t1190
    - attack.persistence
    - attack.t1505.003
    - attack.defense_evasion
    - attack.t1027
    - cve.2026.109618
    - cve.2026.109619
    - cve.2026.123039
logsource:
    product: linux
    service: auditd
detection:
    selection_zz_tpl:
        type: 'PATH'
        name|contains: '/CPcvpn-'
        name|re: '/zz[A-Za-z0-9]+\.tpl$'
    selection_named:
        type: 'PATH'
        name|endswith:
            - '/challenge_render.tpl'
            - '/.up.tpl'
    condition: 1 of selection_*
falsepositives:
    - Check Point support or TAC staging legitimate portal template customisations
    - Administrators uploading custom portal tpl files during maintenance
level: high

Known false positives:

  • Check Point support staging legitimate portal template customisations
  • Administrators uploading custom .tpl files to the portal during maintenance

Tuning notes: Scope to Gaia hosts running Mobile Access. Enable an auditd watch (-w on the CPcvpn templates directory -p wa) so PATH records exist. Exclude known admin change windows. The attacker IP terms are point-in-time; keep them fresh from SK1000362 and Check Point Research.

8 more detection rules (Splunk SPL, Microsoft KQL, Sigma) · unlock with TL Creds. Sign up free to unlock the detection rules or query them with the Threadlinqs MCP server (Purple)
  • TSGA Backdoor Dropper: CPconfigdaemon / [indicator] on Gaia — Post-Exploitation · unlock with TL Creds
  • TSProxy libcpfwcommon.so Injection on Gaia — Process Injection and Proxying · unlock with TL Creds
  • ESXi SSH Login as [indicator] From Gateway or Unapproved Host — Lateral Movement · unlock with TL Creds
  • gogo Scanner Executed on Check Point Gateway — Internal Discovery · unlock with TL Creds
  • destroy_v6 Wiper Execution and [indicator] Note on ESXi — Impact · unlock with TL Creds
  • Check Point Firewall Binary Log Tampering (fw1/log) — Defense Evasion · unlock with TL Creds
  • Check Point Gaia DynamicCLI Local Privilege Escalation (CVE-2026-123039) — Post-Exploitation · unlock with TL Creds
  • TSGA Backdoor C2: TCP [indicator] and Attacker Infrastructure — C2 / Lateral Movement · unlock with TL Creds

Indicators of compromise

As of 2026-11-13, Threadlinqs Intelligence tracks 33 indicators of compromise for TL-2026-5938.

Sample indicators (3 of 33)

  • IP address: 130.94.19[.]204
  • File hash: edb3e92eb7bda7413a09edcc4b1ba3cbed4bcdf42808a8abce63b6e4c3fda2b3
  • IP address: 130.94.19[.]168

Defanged, TLP:CLEAR. Full set of 33 indicators: unlock with TL Creds.

33 indicators of compromise · unlock with TL Creds. Compare plans

Technical analysis

No actor is named.

Check Point Research (published 2026-11-12) and Check Point advisory SK1000362 describe a campaign against Check Point gateways running R81 through R82.20 (Force Firewalls, Management and Log Servers, Multi-Domain Security Management / Multi-Domain Log Server, and Maestro Orchestrator). Spark Firewalls and Smart-1 Cloud are not affected. Activity began roughly a week after fixes became available. Wave 1 on 2026-10-30 was aimed mainly at Israeli organizations and included destructive activity; portal workers logged hundreds of segfaults. Wave 2 on 2026-11-02 hit organizations in several countries and sectors, with no destructive activity reported.

Initial access is through the Mobile Access portal using PHP2Shell, associated with CVE-2026-109618 and CVE-2026-109619 (the same CVE pair is reported by Dream Security in its PHP2Shell research against Palo Alto devices). The primary attacker IP in the Check Point report is 130.94.19.204. The attacker then escalates from the portal service account to root with CVE-2026-123039 (CVSS 7.8). The Gaia dynamic_server process runs as root and accepts commands over /tmp/dynamic_socket, which is world-writable on vulnerable systems and does not verify the submitting user; commands reach a system() sink. The flaw needs prior local code execution and is not a standalone remote flaw.

PHP webshells named <templates>/zz<random>.tpl are dropped in the Mobile Access templates directory, written by a base64-decoded dropper. They are protected by the hardcoded key zz2026 and support OS command execution, PHP evaluation and file upload (staged via /tmp/.up.tpl and copied to challenge_render.tpl); commands can be plain text or Base64/XOR-obfuscated. PHP session files under /opt/CPcvpn-R81.20/tmp/ carry the marker upload_progress_pwn.

The TSGA backdoor is dropped as /tmp/CPconfigdaemon, launched with nohup and output to /tmp/.bd.log, then relocates itself to a boot persistence directory as slot_CPconfigdaemon. It listens on TCP 11072 on all IPv4 interfaces and a Unix socket /tmp/.p_sock, and provides encrypted remote access, PTY shells, Python/Perl execution, file transfer, configuration theft, backup/snapshot persistence, process injection and binary firewall-log tampering. It embeds TSProxy, written to /lib/libcpfwcommon.so and injected into selected appliance processes; it hooks networking functions to handle specially marked attacker connections while passing normal traffic, and provides encrypted SOCKS-style proxying. The open-source gogo scanner (chainreactors/gogo) is used from the gateway for internal discovery, followed by SSH to an ESXi host using the vpxuser service account.

The destroy_v6 Linux ELF wiper takes a target directory, overwrites files with zeros and then deletes them regardless of extension (-f skips the overwrite, -w excludes a pipe-separated directory list). It writes a politically themed Hebrew note, DREAM_ANNEXATION.txt, to each processed directory rejecting ransom negotiation. It was staged on ESXi as /tmp/des wiper.

Attribution is unresolved. TSGA shares Tiny SHell roots, port 11072 and the /tmp/.p_sock socket with PhiliKit, and TSProxy shares operator credentials, transport secrets, activation-selector digests and the TLS certificate/private key with PhiliKit's libdssafe.so. PhiliKit was previously linked by ESET to China-nexus UNC5221 per Check Point, but Check Point found no evidence tying PhiliKit to this incident and notes that the destructive activity, Israel focus and Hebrew note do not fit that profile. Infrastructure is on LightNode VPS (previously associated with China-nexus activity) and scanning concentrated 00:00-09:00 UTC. Tool reuse, an initial access broker, a false flag or destruction as a smoke screen all remain open. The source does not mention CISA KEV listing. Only CVE-2026-123039 has a stated CVSS (7.8); no CVSS is stated for CVE-2026-109618/109619.

MITRE ATT&CK techniques by tactic:

Collection

T1005 Data from Local System

Lateral Movement

T1021.004 Remote Services: SSH

Defense Evasion

T1027 Obfuscated Files or Information; T1036 Masquerading; T1055 Process Injection; T1070 Indicator Removal; T1078 Valid Accounts; T1140 Deobfuscate/Decode Files or Information

Discovery

T1046 Network Service Discovery

Execution

T1059.004 Command and Scripting Interpreter: Unix Shell; T1059.006 Command and Scripting Interpreter: Python

Privilege Escalation

T1068 Exploitation for Privilege Escalation

Command and Control

T1090 Proxy; T1105 Ingress Tool Transfer; T1571 Non-Standard Port; T1573 Encrypted Channel

Initial Access

T1190 Exploit Public-Facing Application

Impact

T1485 Data Destruction; T1561.001 Disk Wipe

Persistence

T1505.003 Server Software Component: Web Shell; T1547 Boot or Logon Autostart Execution

Resource Development

T1583.003 Acquire Infrastructure

Remediation

Patches

  • Check Point SK1000362: Jumbo Hotfix Accumulator R82.20 Take 14+, R82.10 Take 52+, R82 Take 132+, R81.20 Take 174+
  • After patching, /tmp/dynamic_socket should be srw-rw---- root config (0660)

Immediate actions

  • Apply the fixed Jumbo Hotfix Accumulator: R82.20 Take 14, R82.10 Take 52, R82 Take 132 or R81.20 Take 174 (or later)
  • Hunt for compromise indicators on all Check Point gateways, management and Maestro hosts before and after patching
  • Block 130.94.19.204 and 130.94.19.168 and alert on TCP 11072 listeners on gateways
  • Audit vpxuser SSH logins to ESXi hosts, especially from gateway addresses, and review ESXi /tmp for destroy_v6 staging

Workarounds

  • Stop dynamic_server and prevent restart with 'dbset process:dynamic_server' then 'dbset :save' (disables Dynamic CLI commands in sk144112); re-enable by setting the process to t and saving
  • Search /var/log/dynamicCli.log for 'Rejected connection from unauthorized uid', 'Received = #return_value#', commands lacking the Clish wrapper, and strings such as whoami, /etc/shadow, authorized_keys

Longer-term hardening

  • Restrict management-plane and ESXi SSH reachability from perimeter appliances
  • Maintain offline, immutable backups of ESXi hosts and datastores given the wiper capability
  • Monitor firewall log integrity, since TSGA tampers with binary logs
  • Migrate R81 and R81.10 deployments, which are end-of-support with no listed fix

Affected and fixed versions

  • Check Point — Gaia OS: Force Firewalls, Management and Log Servers, Multi-Domain Security Management / Multi-Domain Log Server, Maestro Orchestrator (incl. Mobile Access portal)
    Vulnerable versions: R82.20; R82.10; R82; R81.20; R81.10; R81
    Fixed in: R82.20 Jumbo Take 14+; R82.10 Jumbo Take 52+; R82 Jumbo Take 132+; R81.20 Jumbo Take 174+
  • Check Point — Spark Firewalls and Smart-1 Cloud (not affected)

Timeline

Last updated · 2 updates · revalidated 2× · latest source

  • A sample named 'philistine' (PhiliKit), whose code overlaps with TSGA/TSProxy, was uploaded to VirusTotal; PhiliKit was later reported in connection with Ivanti VPN exploitation.
  • First PHP2Shell exploitation attempt observed against an Amazon honeypot, before public disclosure.
  • Details of CVE-2026-109618/CVE-2026-109619 leaked online.
  • PHP released fixes (8.5.12, 8.4.27, 8.3.36, 8.2.35) and CISA issued an alert; mass exploitation followed.
  • Honeypots operated by Adel Karimi recorded 35 working shells across three honeypots from two source IPs.
  • CISA added CVE-2026-109618 and CVE-2026-109619 to the Known Exploited Vulnerabilities catalog.
  • CISA adds the Fragnesia kernel flaw (CVE-2026-46300), noted as chainable with PHP2Shell to implant web shells and run commands as root, and the VMware ESX flaw CVE-2026-41709 to the KEV catalog.
  • Approximate start (about a week after the fix) of Check Point gateway exploitation from locked-ioc-17.
  • Reporting that a China-linked group chained PHP2Shell with the Fragnesia Linux LPE to root at least 25 Palo Alto firewalls (Dream Security, verified by Unit 42).
  • Wave 1 begins, mainly against Israeli organizations, with destructive activity against some targets; Mobile Access portal workers log hundreds of segfaults.
  • Wave 2 hits organizations across several countries and sectors; no destructive activity reported.
  • Check Point creates advisory SK1000362 for CVE-2026-123039, with Jumbo Hotfix fixes and the dynamic_server workaround.
  • Check Point Research publishes its PHP2Shell exploitation analysis; SK1000362 is updated the same day.
  • Cyber Security News reports confirmed exploitation against about two dozen Check Point customers and wiper deployment on VMware ESXi.

Update history

Sources cited

Other reports on CVE-2026-109618

Other reports on CVE-2026-109619

Previous and next in vulnerability

Drafted by the Threadlinqs research pipeline from 6 sources; published ; last updated .

Threadlinqs Intelligence — Real-Time Threat Detection Platform

// threat_feed
$ sort --newest
Showing all threats

Live intelligence console

Threat level

Latest Threats