EKZ Infostealer Campaign — FortiClient EMS CVE-2026-35616 Abused via on_connect Script Injection (Arctic Wolf, May 2026)
EKZ Infostealer Campaign (TL-2026-0611), also tracked as EKZ Stealer, is a high-severity malware campaign scored CVSS 9.8, first published 2026-05-27. It has no confirmed attribution, affects Fortinet FortiClient EMS, references 1 CVE (CVE-2026-35616), maps to 30 MITRE ATT&CK techniques (T1005, T1012, T1029), and is covered by 9 detection rules and 18 indicators of compromise.
Key facts for TL-2026-0611
- Threat ID
- TL-2026-0611
- Also known as
- EKZ Stealer, FortiEndpoint_Patch infostealer
- Severity
- HIGH
- CVSS
- 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
- Status
- ACTIVE
- Category
- MALWARE
- First published
- 2026-05-27
- Last reviewed
- 2026-05-27
- Attribution confidence
- NONE
- Motivation
- FINANCIAL
- Target sectors
- technology, financial, professional services, manufacturing, healthcare, government
- Target regions
- North America, Europe, Asia-Pacific
- Detection rules
- 9
- Indicators of compromise
- 18
Malware and tooling in EKZ Infostealer Campaign
Malware and tooling: EKZ Infostealer, Custom HTTP C2 (no commodity framework identified), EKZ Infostealer
Arctic Wolf identified a May 2026 intrusion set exploiting CVE-2026-35616 (a critical pre-authentication API access control bypass in Fortinet FortiClient EMS 7.4.5-7.4.6) to silently modify Remote Access Profiles on managed endpoints and weaponize FortiClient's legitimate on_connect IPsec tunnel script directive. The exploitation chain causes fortitray.exe (or ipsec.exe) to spawn GUID-named .cmd scripts under C:\Program Files\Fortinet\FortiClient\logs\Trace\scripts\, which decode base64-encoded PowerShell that retrieves FortiEndpoint_Patch.exe from hxxp://83.138.53.110/dl/p.exe — a previously undocumented MinGW-compiled Windows credential stealer designated EKZ Infostealer. EKZ targets Chromium-family (Chrome, Edge) and Gecko-family (Firefox, LibreWolf, Thunderbird) browsers, abuses the Google Chrome Elevation Service via IElevator::DecryptData to extract the v20 AES-256 master key, dynamically loads nss3.dll for Firefox credential decryption, and exfiltrates harvested passwords, session cookies, and autofill data on a 90-second delayed HTTP POST schedule.
How EKZ Infostealer Campaign works
Overview
On 28 May 2026 Arctic Wolf publicly disclosed an active threat campaign in which an unidentified financially motivated actor exploited CVE-2026-35616, a critical (CVSS 9.8) improper access control flaw in Fortinet FortiClient Endpoint Management Server (EMS) API authentication, as the initial access vector to weaponize trusted endpoint management infrastructure for mass credential theft. The campaign delivered a previously undocumented Windows infostealer that Arctic Wolf designated EKZ Infostealer, named from internal symbol strings recovered from the decrypted code. The campaign represents a textbook misuse-of-legitimate-feature attack: rather than relying on novel implants for persistence, the actor abused FortiClient's documented on_connect script directive — which executes scripts upon IPsec VPN tunnel establishment — to achieve recurring code execution under SYSTEM context every time the user connects to the corporate VPN.
Initial Access and Vulnerability
CVE-2026-35616 (CWE-284, Improper Access Control) was published by Fortinet on 4 April 2026 under advisory FG-IR-26-099, with credit to Simo Kohonen of Defused and Nguyen Duc Anh. The flaw affects FortiClient EMS 7.4.5 and 7.4.6 and permits an unauthenticated remote attacker to bypass API authentication and issue privileged requests against the EMS management API (TCP/8013 in default deployments). FortiClient EMS 7.4.7 contains the fix; FortiClient Cloud and FortiSASE customers were remediated server-side. watchTowr's Attacker Eye sensors observed in-the-wild exploitation as early as 31 March 2026, four days before Fortinet's coordinated disclosure, indicating the vulnerability was a zero-day at the time of initial use. CISA added CVE-2026-35616 to the Known Exploited Vulnerabilities catalog on 6 April 2026 with a federal mitigation deadline of 9 April 2026.
Weaponization — on_connect Script Injection
After authenticating to the EMS API via the bypass, the actor modifies the organization's Remote Access Profile and endpoint policy, injecting a malicious on_connect script directive. The on_connect feature is a documented FortiClient capability that executes administrator-defined scripts when an IPsec tunnel is established; it is designed for legitimate post-connection automation (drive mapping, banner display) and runs in the context of the FortiClient service. EMS pushes the modified policy to every managed endpoint, and on the next VPN connection the on_connect script materializes on the endpoint at C:\Program Files\Fortinet\FortiClient\logs\Trace\scripts\{GUID}.cmd, where {GUID} is a fresh UUID generated per push. fortitray.exe (the FortiClient system-tray host) or ipsec.exe (the VPN tunnel handler) invokes cmd.exe to execute the .cmd file, which in turn launches powershell.exe with a base64-encoded -EncodedCommand payload. The PowerShell stage downloads FortiEndpoint_Patch.exe (also named p.exe in transit) from hxxp://83.138.53.110/dl/p.exe and executes it with no on-disk staging beyond the binary itself, sleeping for approximately 90 seconds before issuing an HTTP POST to the same host to confirm execution and stage exfiltration.
EKZ Infostealer Capabilities
FortiEndpoint_Patch.exe is a MinGW-compiled (GCC for Windows) PE32+ binary masquerading as a legitimate Fortinet patch. Reverse-engineering by Arctic Wolf revealed the implant calls itself EKZ in internal symbol strings. The malware enumerates installed browsers via the Windows registry and selects from two distinct credential-extraction paths:
Chromium-family (Google Chrome, Microsoft Edge, Brave, and other v20-AES-256 derivatives): EKZ stages a self-copy into the targeted browser's Application\ directory to satisfy the Elevation Service's path-validation check, then invokes the legitimate Google Chrome Elevation Service via the IElevator COM interface, specifically IElevator::DecryptData. This call returns the cleartext v20 master AES-256 key that protects the SQLite-based Login Data and Cookies databases — bypassing the DPAPI-bound user-context decryption requirement that has historically forced stealers to run as the logged-in user.
Gecko-family (Mozilla Firefox, LibreWolf, Mozilla Thunderbird): EKZ dynamically loads nss3.dll from the targeted application's install directory and uses NSS_Init, PK11SDR_Decrypt, and related APIs to decrypt key4.db (master key store), logins.json (saved credentials), and cookies.sqlite (browser cookies) directly in process.
All harvested material — passwords, session cookies, credit card autofill, and browser autocomplete entries — is concatenated to a plaintext file at C:\ProgramData\log.txt and exfiltrated to the C2 (83.138.53.110) on a timed schedule via HTTP POST. Arctic Wolf explicitly highlights that stolen session cookies enable account takeover even where MFA protections are in place, because valid post-authentication cookies bypass the MFA challenge entirely.
Post-Exploitation Activity
Within hours of successful credential exfiltration, Arctic Wolf observed authentication attempts from Tor exit nodes 185.220.101.15 and 192.42.116.14 against the victim's perimeter and SaaS identity providers — consistent with hands-on-keyboard validation of stolen cookies and credentials. The malware itself does not appear to implement lateral movement or post-exploitation tooling; the actor appears to operate a steal-validate-monetize tradecraft model in which the EKZ implant is solely a harvester and human operators perform follow-on intrusion.
Attribution and Motivation
No public attribution has been issued. The campaign's tradecraft — exploitation of a recently disclosed enterprise CVE for opportunistic mass deployment, financially monetizable credential and cookie theft, and Tor-fronted follow-on access — is consistent with cybercriminal initial access broker (IAB) operations rather than nation-state activity. Attribution confidence is LOW. The presence of EKZ as an apparently bespoke (not commodity) infostealer suggests either a tooled-up criminal crew or a small custom-tool ecosystem rather than reuse of mainstream stealer-as-a-service families (RedLine, Lumma, StealC).
Defensive Posture
Patching FortiClient EMS to 7.4.7+ remediates the initial access vector. Detection focuses on (1) FortiClient EMS API access from unexpected sources or with anomalous request volume targeting Remote Access Profile endpoints; (2) GUID-named .cmd file creation under C:\Program Files\Fortinet\FortiClient\logs\Trace\scripts\; (3) parent-child anomalies where fortitray.exe or ipsec.exe spawns cmd.exe → powershell.exe with -EncodedCommand; (4) outbound TCP to 83.138.53.110 or related infrastructure; (5) network connections to nss3.dll-bearing browser process trees from non-browser parents. All credentials and session cookies on managed endpoints exposed to a vulnerable EMS should be considered compromised pending rotation.
MITRE ATT&CK techniques used in TL-2026-0611
Collection
T1005 Data from Local System; T1185 Browser Session Hijacking
Discovery
T1012 Query Registry; T1083 File and Directory Discovery; T1518 Software Discovery
Exfiltration
T1029 Scheduled Transfer; T1041 Exfiltration Over C2 Channel
Defense Evasion
T1036 Masquerading; T1140 Deobfuscate/Decode Files or Information; T1218 System Binary Proxy Execution; T1564 Hide Artifacts
Execution
T1059 Command and Scripting Interpreter; T1204 User Execution; T1559 Inter-Process Communication
Command and Control
T1071 Application Layer Protocol; T1105 Ingress Tool Transfer; T1571 Non-Standard Port
Initial Access
T1190 Exploit Public-Facing Application; T1199 Trusted Relationship
Persistence
T1505 Server Software Component; T1546 Event Triggered Execution
Impact
Credential Access
T1539 Steal Web Session Cookie; T1552 Unsecured Credentials; T1555 Credentials from Password Stores
Privilege Escalation
T1548 Abuse Elevation Control Mechanism
Resource Development
T1583 Acquire Infrastructure; T1587 Develop Capabilities; T1588 Obtain Capabilities
Reconnaissance
Affected products and versions in EKZ Infostealer Campaign
- Fortinet — FortiClient EMS
Vulnerable versions: 7.4.5; 7.4.6
Fixed in: 7.4.7 - Fortinet — FortiClient EMS 7.2.x
Fixed in: 7.2 (not affected) - Fortinet — FortiClient Cloud
Fixed in: Server-side remediated by Fortinet - Fortinet — FortiSASE
Fixed in: Server-side remediated by Fortinet
Remediation for EKZ Infostealer Campaign
Patches
- FortiClient EMS 7.4.7 (and later) — addresses CVE-2026-35616 per Fortinet advisory FG-IR-26-099 (4 April 2026).
- FortiClient Cloud — already remediated server-side; no customer action required.
- FortiSASE — already remediated server-side; no customer action required.
Immediate actions
- Upgrade FortiClient EMS to 7.4.7 or later immediately; FortiClient EMS 7.4.5 and 7.4.6 are vulnerable to CVE-2026-35616.
- Restrict inbound access to the FortiClient EMS management API (default TCP/8013) to trusted administrative IP ranges only; never expose EMS directly to the internet.
- Audit Remote Access Profiles and endpoint policies in FortiClient EMS for unauthorized on_connect script directives or any script directive added or modified after 31 March 2026.
- Hunt all managed endpoints for the file path C:\Program Files\Fortinet\FortiClient\logs\Trace\scripts\{GUID}.cmd; any file matching this pattern that was not deployed by your administrators is an indicator of compromise.
- Block outbound connections to 83.138.53.110 and inspect proxy/firewall logs for the URL pattern /dl/p.exe.
- Treat all browser-stored credentials, session cookies, and autofill data on managed endpoints as compromised; force password rotation and global session revocation across SaaS identity providers.
Workarounds
- If 7.4.7 cannot be applied immediately, block external access to the FortiClient EMS API port (TCP/8013) at the network perimeter and restrict to administrative jump hosts.
- Temporarily disable the on_connect script directive in all Remote Access Profiles until patching is complete; this removes the primary code-execution sink the actor abuses.
Longer-term hardening
- Deploy EDR with behavioral detections for parent-child anomalies where fortitray.exe or ipsec.exe spawns cmd.exe and powershell.exe with -EncodedCommand.
- Implement Chromium policy CloudReportingEnabled and EnterpriseRealTimeUrlCheckMode to surface unexpected Elevation Service invocations from non-browser processes.
- Adopt phishing-resistant authentication (FIDO2/WebAuthn) and short-lived session cookies with device binding to defeat cookie replay attacks.
- Segment endpoint management infrastructure (EMS, MDM, RMM) into a dedicated management plane with conditional-access controls and bastion access only.
CVEs associated with EKZ Infostealer Campaign
Weaknesses (CWE) in EKZ Infostealer Campaign
CWE-284
Timeline of EKZ Infostealer Campaign
- Defused observes in-the-wild exploitation of the related FortiClient EMS flaw CVE-2026-21643, earlier than initially understood at its February disclosure — establishing prior targeting interest in the FortiClient EMS attack surface.
- watchTowr's Attacker Eye sensors detect in-the-wild exploitation of CVE-2026-35616 against internet-exposed FortiClient EMS instances, four days before Fortinet's public advisory — confirming zero-day status at time of first abuse.
- Fortinet publishes PSIRT advisory FG-IR-26-099 disclosing CVE-2026-35616, an improper access control vulnerability (CWE-284, CVSS 9.8) in FortiClient EMS 7.4.5-7.4.6 enabling unauthenticated API code execution; fix released in 7.4.7. NVD entry published the same day. Credit: Simo Kohonen (Defused) and Nguyen Duc Anh.
- CISA adds CVE-2026-35616 to the Known Exploited Vulnerabilities catalog, requiring federal civilian executive branch agencies to remediate by 9 April 2026.
- CISA federal mitigation deadline for CVE-2026-35616 elapses.
- Arctic Wolf observes the EKZ Infostealer campaign cluster against multiple managed-detection-and-response customers, with intrusion timestamps clustering through mid-to-late May 2026.
- Arctic Wolf observes authentication attempts against victim perimeter and SaaS identity providers from Tor exit nodes (185.220.101.15, 192.42.116.14) within hours of EKZ exfiltration events — consistent with hands-on-keyboard validation of stolen credentials and session cookies.
- Arctic Wolf publishes its analysis of the EKZ Infostealer campaign; Cyber Security News and malware.news republish technical details and IOCs including the C2 host 83.138.53.110, EKZ SHA-256 0da123adf9251957a4b850a3f6bd6a753dd4892be176a84a18450e899534cc5e, and the fortitray.exe → cmd → powershell → FortiEndpoint_Patch.exe process chain.
- As of 2026-05-29, EKZ Infostealer is an active campaign: Arctic Wolf disclosed it May 28 with activity clustering through late May, and Help Net Security/SecurityWeek report unpatched FortiClient EMS instances are still being targeted via CVE-2026-35616 (CISA KEV, actively exploited). Patch 7.4.7 exists but the C2 (83.138.53.110) remains live with no takedown, sinkhole, or arrests.
Sources cited for EKZ Infostealer Campaign
- Cyber Security News — FortiClient Code Execution Vulnerability Exploited to Deploy EKZ Malware
- Arctic Wolf — CVE-2026-35616 Security Bulletin
- Malware.news — FortiClient EMS Exploited via CVE-2026-35616 to Deliver EKZ Infostealer Disguised as a Fortinet Patch
- Fortinet PSIRT Advisory FG-IR-26-099 — FortiClient EMS Improper Access Control
- NVD — CVE-2026-35616 Detail
- CISA Known Exploited Vulnerabilities Catalog — CVE-2026-35616
- watchTowr — Fortinet FortiClient EMS Zero-Day CVE-2026-35616 Active Exploitation Underway
- SOCRadar — CVE-2026-35616 FortiClient EMS API Auth Bypass Enables Command Execution
- eSecurity Planet — CVE-2026-35616 FortiClient EMS Flaw Under Active Exploitation
- NetSPI — CVE-2026-35616 & CVE-2026-21643 Fortinet FortiClientEMS Overview & Takeaways
- runZero — Fortinet FortiClient EMS vulnerability CVE-2026-35616
- HoplonInfosec — Fortinet CVE-2026-35616 Exploit Patch FortiClient EMS
Threats related to EKZ Infostealer Campaign
- Cloud vn105rkj64 — Italian Invoice Phishing Drops Windows Backdoor and Force-Installed Chrome Extension Abusing Native Messaging for Cookie Theft, MFA Bypass, and Remote PowerShell
- ModHeader Chrome/Edge Extension (v7.0.17-7.0.18, 1.6M Installs) Contains Dormant AES-GCM Browsing-History Exfiltration Pipeline to api.stanfordstudies.com
- ClickFix Campaign Delivers TELEPUZ Modular RAT via VIDAR-Based Second Stage
- Nimbus RAT (BackupBOX) — Microsoft Teams Vishing + Quick Assist Delivery of a Self-Contained Java RAT Using Google Drive/Sheets for C2 (BlackSuit Affiliate)
Detection coverage for TL-2026-0611
As of 2026-05-27, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-0611 across Splunk SPL, Microsoft KQL and Sigma, covering 18 indicator(s) of compromise. The whole corpus is readable without an account; a free account unlocks full detection query text in Splunk SPL, Microsoft KQL and Sigma; paid tiers add raw indicator values, correlation and the MCP server. Threadlinqs MCP server · View plans.