Ivanti Connect Secure (ICS)
CVE-2026-104935: Connect Secure authentication bypass chained into root access
An unauthenticated request spoofing flaw in Ivanti Connect Secure lets attackers run commands on the appliance. Exploited since at least October 3, 2026 as a zero-day and listed in CISA KEV on October 13.
Published Updated
Affected and fixed versions
| Product / branch | Fixed in |
|---|---|
| Connect Secure 25.1.2.2 and earlier | 25.1.3.0 or 25.1.3.1 |
| Connect Secure 25.1.1.1 (ISA6000 and ISA8000) | 25.1.1.2 or later |
| Connect Secure 22.8R2.4 and earlier (22.8 bridge release) | 22.8R2.5 or later |
| Connect Secure 22.7R2.14 and earlier | Not affected |
Always confirm against the vendor advisory, which lists every fixed hotfix.
What it is
CVE-2026-104935 is an authentication bypass by spoofing (CWE-290) in Ivanti Connect Secure. A remote attacker with no credentials can run arbitrary commands on the appliance. The CVE record lists it as exploited, and CISA added it to KEV on October 13, 2026.
Volexity found it being used as the first step of a three-part chain by an actor it calls UTA0576:
- Authentication bypass. A request to
welcome.cginames a public URL path but a different, protected CGI script in theX-DSCGI-PATHheader, and the appliance serves the protected one. - Remote code execution. An uploaded Perl script is written to disk before it is validated, and deleted afterward. A second request runs it inside that window.
- Privilege escalation to root. The actor patches a library in memory so a maintenance task runs its script as root. This step has no CVE and no fix yet. Volexity says Ivanti is working on one for a future release.
So the patch closes the entry point, but the root step stays open until Ivanti ships its fix. Volexity saw the actor steal stored LDAP service credentials, query Active Directory for LAPS passwords and BitLocker recovery keys, run Kerberoasting and password spraying, and capture LDAP traffic for plaintext credentials. It left no web shell. It re-ran the chain for every command, and it tampered with logs and restored the memory patch.
NVD lists a CVSS 3.1 score of 8.6 (high) from a secondary source. watchTowr reports the vendor score as not yet assigned. CISA’s SSVC data marks exploitation as active and the bug as automatable.
Related: the same product has been exploited before, for example CVE-2025-0282 in January 2025.
Am I affected?
You’re affected if you run Connect Secure in one of these ranges, per watchTowr and the NVD record. Ivanti’s own advisory page wouldn’t load for us, so confirm against it.
| Branch | Affected | Fixed |
|---|---|---|
| 25.1.2.x and earlier | 25.1.2.2 and earlier | 25.1.3.0, 25.1.3.1 |
| 25.1.1.1 on ISA6000 and ISA8000 | 25.1.1.1 | 25.1.1.2 |
| 22.8 bridge release | 22.8R2.4 and earlier | 22.8R2.5 |
Not affected: ICS 22.7R2.14 and earlier, per the CVE record. Ivanti has not described any special configuration, so assume any reachable appliance is exposed. The attack needs only network access to the web interface.
Check your version in the appliance admin console. We could not confirm a vendor menu path or CLI command, so none is given here.
Shadowserver tracks over 5,500 internet-exposed Connect Secure instances, per BleepingComputer, though some may be honeypots.
What to do
- Upgrade now to the fixed build for your branch (see the table above). Moving to 25.1.3.0 or later needs new ISA4500, ISA6500 or ISA8500 hardware, or a rebuilt virtual or cloud appliance, per watchTowr. If you can’t do that tonight, the interim fixes are 22.8R2.5 and 25.1.1.2.
- Before you change anything, preserve logs and system images from the appliance (watchTowr’s summary of Ivanti’s guidance). Upgrading destroys evidence you may need.
- Restrict access to the management and gateway interfaces where you can. This is watchTowr’s summary of Ivanti’s advice. Ivanti has not published a workaround that replaces patching, as far as we could confirm.
- Plan your exit from 22.7 and 22.8. Both lines reach end of life on January 31, 2027, per watchTowr.
- If the appliance was reachable while vulnerable, treat it as possibly compromised. The Integrity Checker Tool will not catch this, so do not rely on a clean result. Do network and memory forensics, and follow Ivanti’s recovery guidance.
- Rotate what the appliance could read. That means the LDAP service account and other stored credentials. Review exposure of LAPS passwords and BitLocker recovery keys in Active Directory. Volexity doesn’t list these as formal steps, but they follow from what it saw the actor take.
- Watch for the root-escalation fix. Apply it as soon as Ivanti releases it.
CISA’s due date for federal agencies is October 16, 2026. Its required action is to apply vendor mitigations and follow BOD 26-04, including the forensic triage requirements.
Detection
From Volexity’s analysis:
- Web logs: high volumes of requests to
/dana-na/auth/url_default/welcome.cgi, especially where theX-DSCGI-PATHheader doesn’t match the URL path. Header values seen:/home/webserver/htdocs/dana/fb/smb/wu.cgiand/home/runtime/tmp/<MD5 of filename>. - Files: the paths in the indicators table, especially
ics-root-run-inband-*.plandics-root-result-inband-*in/home/runtime/tmp/, the.pyfiles in/tmp/, and anything under/data/.icscap/. - Processes:
dsstatmondrunning from a.icscapdirectory. It is a renamed tcpdump. Also look for/home/venv3/bin/python3.6runningh.py. - Tampered logs: gaps or odd edits in
/home/runtime/dlogs/debuglogand/var/log/audit/audit.log. - Network: connections from
108.165.147[.]64, and lateral movement, LDAP queries or password spraying that start at the appliance. - In Active Directory: unusual queries for LAPS passwords, BitLocker recovery keys and password-bearing attributes, and Kerberoasting activity from the appliance’s service account.
Search back to at least October 1, 2026, when Defused first saw exploitation. Volexity’s iocs.csv and YARA rules are in its GitHub repository.
Indicators of compromise
The attacker restored the memory patch and deleted most payloads, so missing files don't prove a clean device. Ivanti told watchTowr it has no reliable indicators of compromise, and Volexity says the Integrity Checker Tool doesn't detect this activity.
The .txt list has one IP per line and a fixed address, so a firewall can pull it as an External Dynamic List: https://patchtonight.com/iocs/CVE-2026-104935.txt
| Indicator | Type | Reported by |
|---|---|---|
| 108.165.147[.]64 | IPEvoxt VPS that ran an OpenVPN server from Sep 30 to Oct 7, 2026 | Volexity |
| /dana-na/auth/url_default/welcome.cgi | File pathRequest path used with a mismatched X-DSCGI-PATH header | Volexity |
| /home/runtime/tmp/ics-root-run-inband-*.pl | File pathRoot payload scripts | Volexity |
| /home/runtime/tmp/ics-root-result-inband-* | File pathOutput of root payloads | Volexity |
| /home/bin/updateOpswatSDK.pl | File pathMaintenance script hijacked for root execution | Volexity |
| /data/.icscap/dsstatmond | File pathRenamed tcpdump | Volexity |
| /data/.icscap/h.py | File path | Volexity |
| /data/.icscap/cap0 | File pathPacket capture files (cap*) of LDAP traffic | Volexity |
| /tmp/ml.py | File path | Volexity |
| /tmp/rq5.py | File path | Volexity |
| /tmp/mk.py | File path | Volexity |
| /tmp/rr.py | File path | Volexity |
| /tmp/sp_run.py | File path | Volexity |
| /tmp/spray_hits.json | File pathPassword spraying results | Volexity |
Sources
Page changelog
- Full analysis published.
KEV status, EPSS score and vendor data refreshed automatically, last on 14 Oct 2026.