Patched Ivanti Connect Secure in October? Two more exploited bugs, and the AD cleanup
Ivanti fixed two more bugs in the exploited Connect Secure chain, and CISA now lists all three. Here are the builds that close them, what the attackers took from Active Directory, and what to rotate.
part 18 of 25 · Platform releases, explained from scratchthe ideaThree chained bugs turn the VPN login page into AD access.
after reading, you can- Work out which Connect Secure build your hardware can take that closes all three bugs
- Spot a VPN that a mid-October patch left half fixed
- Decide what to rotate in AD once you suspect someone owned the VPN
If you patched Ivanti Connect SecuredefinitionIvanti's SSL VPN appliance, formerly Pulse Connect Secure. Staff sign in to it from the internet, and it checks their login against your directory. for CVE-2026-104935 earlier this month, you're not finished. Ivanti has now fixed the two other bugs in the same attack chain, CISA lists both as exploited, and the builds you need are 25.1.1.3 or 22.8R2.6. Patching is only half of it. Attackers who got in went after the VPN's directory passwords, so the Active Directory side needs checking too.
Three chained bugs give attackers root on Ivanti's VPN, and then they go after your Active Directory.
Ivanti Connect Secure is the box your staff sign in to when they work from home. It checks every login against your directory, so it keeps a directory account of its own, and people's passwords pass through it. Volexity caught attackers stringing three flaws together. One got a stranger past the login, one got their script running on the box, and the last gave them full control. After that they read the stored credentials and went looking in Active Directory for local admin passwords and BitLocker recovery keys. They also tried passwords against staff accounts. Ivanti fixed the first flaw on October 13 and the other two on October 29.
Picture a building's front desk. Someone walks up and shows a pass for the lobby, but the desk reads the room number from a sticky note they hand over and sends them straight up. Upstairs they leave a package in the mail room, and before it's thrown out they open it. Then they talk the night janitor, who has every key, into running an errand for them.
- Anyone running Ivanti Connect Secure
- IT teams on 22.8 or 25.1.1 builds
- Companies whose VPN signs in through AD
- Teams using Windows LAPS or BitLocker
- Federal agencies and their contractors
Why it matters to you
The VPN sits at the edge of your network, facing the internet, and every remote login passes through it. If someone takes it over, they start inside your network with a working directory account. They can also capture the directory traffic passing through the box and pull passwords out of it. The attacker Volexity tracked tried exactly that, with a renamed packet capture tool.
Ivanti says it knows of a limited number of customers hit when the three bugs were chained. CISA says threat actors are using the chain for credential theft and data exfiltration, and it flagged two of the three for forensic triagedefinitionA flag CISA puts on some KEV entries. Agencies can't just patch: they have to collect evidence first where they can, and check whether they were hit.. That flag tells US agencies they have to look for signs of compromise, so patching alone doesn't close the case. Private companies aren't bound by the directive, but it's a fair standard to borrow.
This product has been here before. Count the Pulse Connect Secure years and CISA's catalog now holds 17 of its flaws, with earlier waves added in January 2024, January 2025 and April 2025. If you still run one of these boxes, budget time for the next emergency patch now. The record says you'll need it.
-
01 A request to the public login page
Everyone can reach welcome.cgi, the script that draws the VPN login screen. It has to be that way or your staff couldn't sign in. The attacker starts there.
-
02 A header picks the real target
A header in the request names a protected script. The box checks the public URL but delivers the request to the script in the header.
-
03 A file upload with a known name
That script is an upload handler. It saves the attacker's file under a name anyone can work out, and only then checks whether it's a real ZIP.
-
04 A race to run it
Before the handler deletes the bad file, the attacker sends parallel requests to run it. Sending several in quick succession raises the odds that one lands in time.
-
05 A root service does the rest
The box has a helper, dsinvoked, that runs upkeep jobs as root whenever asked. The attacker's script swaps one job for its own code and asks for it. Then it puts the job back and wipes its log lines.
-
06 Credentials walk out
With root, the attacker reads the VPN's stored directory credentials and queries Active Directory for LAPS passwords and BitLocker keys.
For engineers: Volexity saw the bypass routed through the X-DSCGI-PATH header to /dana/fb/smb/wu.cgi. That handler writes uploads to /home/runtime/tmp/ under the MD5 of the client's file name. The privilege escalation patched the cgi-server process's in-memory copy of libdsplibs.so so it could change a DSCache entry. It then pointed an existing maintenance task at the Perl interpreter and asked dsinvoked to run it. Every command re-ran the whole chain and came back in the HTTP response. There was no web shell or backdoor, and the library on disk was never changed. That's why Ivanti's Integrity Checker TooldefinitionIvanti's tool that looks for unexpected file changes on a Connect Secure appliance. It checks files on disk, so attacks that live only in memory can slip past it. found nothing.
What Ivanti fixed, and in which builds
The three CVEs in the chain
CVE-2026-104935 lets a remote attacker with no login run commands. Ivanti rates it 8.6. Fixed in 25.1.1.2 and 22.8R2.5 on October 13; 25.1.3.0 already had the fix. 22.7R2.14 and older never had the bug.
CVE-2026-111357 turns limited access on the box into root through how dsinvoked trusts DSCache data. Ivanti rates it 8.8, and MITRE's score on NVD is 7.0. Fixed on October 29 in 25.1.1.3 and 22.8R2.6.
CVE-2026-118527 lets a logged-in user put a file with chosen content at a known place on disk. Rated 4.3 alone, but chained with the bypass it needs no real login. Fixed in 25.1.1.3 and 22.8R2.6.
Ivanti found part of the problem itself and fixed it in 25.1.3.0 in July. It was backporting that fix to older lines when the attacks started.
Ivanti calls 22.8 a temporary bridge to 25.1 and wants customers on 25.1 before that date. 22.8R2.6 buys time but doesn't change the deadline.
| Your line today | Affected by | Closes CVE-2026-104935 | Closes all three |
|---|---|---|---|
| 22.7R2.14 and older | None of the three | Not affected | Not affected; still plan 25.1 before Jan 31, 2027 |
| 22.8R2.4 and older | All three | 22.8R2.5 | 22.8R2.6, or 25.1.1.3 as Ivanti recommends |
| 22.8R2.5 | CVE-2026-111357 and CVE-2026-118527 | Already fixed | 22.8R2.6 or 25.1.1.3 |
| 25.1.1.1 and older (ISA6000, ISA8000, virtual) | All three | 25.1.1.2 | 25.1.1.3 |
| 25.1.1.2 | CVE-2026-111357 and CVE-2026-118527 | Already fixed | 25.1.1.3 |
| 25.1.2.2 and older (ISA6500, ISA8500 only) | CVE-2026-104935 in Ivanti's table | 25.1.3.0 or 25.1.3.1 | 25.1.3.0 or 25.1.3.1 |
| 25.1.3.0 and 25.1.3.1 | None of the three | Not affected | Not affected |
From the first attack to the federal deadlines
- Jul 202625.1.3.0 released with part of the fix
- Oct 3, 2026UTA0576 starts exploiting a fully patched 22.8R2.4
- Oct 13, 2026Ivanti fixes CVE-2026-104935; Volexity publishes; CISA adds it to KEV
- Oct 16, 2026Federal due date for CVE-2026-104935
- Oct 29, 2026Ivanti releases 25.1.1.3 and 22.8R2.6
- Oct 30, 2026CISA adds the other two CVEs to KEV and updates its alert
- Nov 2, 2026Federal due date for CVE-2026-111357
This one also carries CISA's forensic triage flag, so agencies have to look for compromise as well as patch.
- Nov 13, 2026Federal due date for CVE-2026-118527
- Jan 31, 2027End of life for 22.7 and 22.8
The table hides a trap for anyone who patched quickly in mid-October. 22.8R2.5 and 25.1.1.2 closed the bypass, and a vulnerability scanner keyed only to CVE-2026-104935 will mark them clean. They're still open to the other two. The no-login chain Volexity described starts with the bypass, which those builds close. Ivanti says CVE-2026-118527 needs an authenticated attacker and CVE-2026-111357 a local authenticated one. Both are still open on those builds, and both are on CISA's exploited list. Don't leave that sitting on your edge.
Ivanti explains the gap in its FAQ. It had the fix for CVE-2026-104935 in QA when the attacks were found and chose not to hold it back for the privilege escalation fix. That was a reasonable call. It also means anyone who treated the October 13 patch as the end of the story needs a second change window.
- Closes all three CVEs on the box you already have
- In-place upgrade, so the same appliance and config
- You're still on a line that dies on Jan 31, 2027
- You'll do a bigger 25.1 move in the next three months anyway
- It's the build Ivanti actually wants you on, and it closes all three
- Gets you onto the 25.1 line before 22.8 runs out
- Clusters have to be broken, upgraded one by one and rebuilt
- Virtual appliances need a vTPM, so check the hypervisor first
What to do now
What to do now, by who you are
- Ask IT or your managed provider whether you run Ivanti Connect Secure, and which build, in writing.
- If they patched in mid-October, ask whether they've applied the October 29 builds too.
- Ask whether anyone has checked the VPN's directory account for misuse. Patching doesn't answer that.
- Put the January 31, 2027 end-of-life date in next quarter's budget if you're on 22.7 or 22.8.
- Upgrade to 25.1.1.3 or 22.8R2.6, whichever your hardware takes. If you're already on 25.1.3.x, you're fine.
- Before you upgrade a box you think was hit, take memory and disk images first. The upgrade wipes the evidence.
- Check the web logs for bursts of requests to /dana-na/auth/url_default/welcome.cgi from one source.
- In the disk image, look in /tmp and /data/.icscap for files you didn't put there.
- Find the service account the VPN uses for LDAP. Then list what it can actually read in AD, since that's what an attacker got.
- Rotate that account's password, and any other accounts set up in the VPN's auth server settings.
- Check whether that account could read LAPS passwords or BitLocker recovery keys. If it could, rotate those too.
- Look for password spraying and Kerberos ticket requests coming from the VPN's internal address.
- Treat a clean Integrity Checker result as no answer at all. Volexity showed it can't see this chain.
- Load Volexity's published indicators and YARA rules into your tools and search back to October 3.
- Alert on any request where the URL path and the X-DSCGI-PATH header don't match.
- Ship VPN logs off the box. The attacker cut entries from the local debug and audit logs.
If you have ten minutes, start with the build number. Check it in the admin console or on the maintenance page, and compare it with the table. Anything below 25.1.1.3 on the 25.1.1 line, or below 22.8R2.6 on 22.8, is still open.
# example output, values made up. Run against logs you've copied off the appliance grep -c 'welcome.cgi' access.log 48211 # A spike from one address is worth a look. Volexity says the exploit sends many parallel requests grep -i 'X-DSCGI-PATH' proxy-headers.log # only if a proxy or sensor keeps headers X-DSCGI-PATH: /home/runtime/tmp/9f2c...e1 # A header pointing at /home/runtime/tmp/ is the race step. Escalate to forensics grep '108.165.147.64' access.log firewall.log # The one IP in Volexity's indicator file. No hit doesn't clear you; other actors use other hosts
You'll only see the header if something in front of the VPN records request headers, such as a reverse proxy or a network sensor. If nothing does, that's a gap to close before the next advisory.
A patch order for this weekend
- 01Find every appliance
Include the DR box, the lab instance and any virtual appliance in the cloud. Write down the build and hardware model for each.
- 02Decide which ones need forensics
Any box that ran an affected build on the internet since October 3 is a candidate. Take memory and disk images before you touch it.
- 03Upgrade to the build that closes all three
25.1.1.3 for ISA6000, ISA8000 and virtual 25.1.1 boxes. 22.8R2.6 if you can't move off 22.8 this weekend. Break clusters first if you're jumping to 25.x.
- 04Rotate what the box held
Reset the LDAP service account, local accounts, the admin enable password and API keys. Revoke and reissue its certificates if you have any reason to think it was reached.
- 05Book the 25.1 move
If you patched 22.8 in place, schedule the move to 25.1 now. January 31 is about three months away, and new hardware or a fresh virtual build takes planning.
Harden so the next one hurts less
Edge devices keep getting hit, and this product line has a long record on CISA's list. The fix that lasts is to make the VPN worth less to an attacker. Assume the box will be owned again someday, and limit what it can reach and what it can read when that happens.
Before: the VPN is trusted with the directory
The appliance binds to AD with a broad service account over plain LDAP. Logs stay on the box, and nobody watches what the VPN itself does on the inside.
After: a compromised VPN gets very little
The appliance runs a fixed 25.1 build and binds over encrypted LDAP with an account that can only check logins. Logs stream out, and the SOC alerts on odd traffic from the VPN.
Start with the directory account. The attacker used it to search for LAPSdefinitionMicrosoft's tool for local admin passwords. Instead of one password on every PC, each machine gets its own, and a copy sits in Active Directory or Entra ID. passwords, BitLocker recovery information and password attributes, so its read rights decide how bad a breach gets. Windows LAPS can encrypt the password it stores in Active Directory, and by default only Domain Admins can decrypt it. Keep the VPN account out of that group, and check what it can read in your BitLocker recovery objects. Our Microsoft Entra and Active Directory page and CyberArk page cover how we lock down and rotate service accounts like this one.
Durable fixes, tied to this case
- 01Shrink the VPN's directory account
Give it only the rights it needs to check a login. Volexity's attacker used this account to query AD for LAPS passwords and BitLocker keys.
- 02Stop sending directory logins in clear text
The attacker filtered captured traffic for port 389 to try to pull out LDAP passwords. Move the VPN's binds to LDAPS or another encrypted channel.
- 03Get logs off the box
The exploit removed its own lines from the local debug log and the Linux audit log. Copies already sent to a SIEM are much harder to edit.
- 04Watch the VPN like a user
Alert when the appliance's internal address does Kerberos ticket requests, mass LDAP searches or logins against many accounts. A VPN shouldn't do any of that.
- 05Give edge advisories a standing window
Expect more emergency patches on this product and keep a change window ready for them. Have a tested way to take memory images before you patch.
If you've been breached
If you find signs someone used this chain
Save evidence before you change anything. The attacker worked in memory and edited logs, so the upgrade and the reboot destroy what's left. CISA says network and memory forensics are needed to tell, and Ivanti's Integrity Checker may not show a thing.
- 01Containfirst hours
- Set up a way to talk that doesn't run through the network you think is compromised.
- Take memory and disk images of the appliance before rebooting, patching or factory resetting it.
- Copy the VPN's logs and any proxy or sensor logs off the box.
- Block the appliance's internal address from reaching domain controllers except for what logins need.
- 02Investigatefirst two days
- Run Volexity's indicators and YARA rules over the images. Go back to October 3, when its attacks started.
- Check AD for LDAP searches by the VPN account against LAPS, BitLocker and password attributes.
- Look for password spraying, Kerberos ticket requests and new logins that trace back to the VPN.
- List the machines whose LAPS password or BitLocker key that account could see. Those are in scope now.
- 03Rebuildbefore reopening
- Back up the configuration, then factory reset hardware or rebuild a virtual appliance from a clean image.
- Upgrade to a fixed build while it's isolated. Ivanti says not to expose it until fully upgraded.
- Put the saved configuration back from the backup you took before the reset, then check it over.
- 04Rotatebefore reopening
- Reset passwords for all accounts, including domain, admin and local ones, and the auth server service accounts.
- Revoke and reissue its certificates, including the external SSL certificate and any client or code signing ones.
- Change the admin enable password. If the box stored API keys or license server credentials, reset those too.
- Rotate LAPS passwords and BitLocker recovery keys the VPN account could read.
- 05Report and learnfirst week
- Get legal involved early. What was taken decides who you have to tell, and insurers usually want to hear quickly.
- Federal agencies report a confirmed compromise to CISA under the directive's triage steps.
- Write down what slowed you: missing memory images, logs kept only on the box, or an account with too much access.
Most of that list comes from CISA's alert and Ivanti's recovery procedures. The identity part goes further than either. Volexity saw the attacker query LAPS passwords and BitLocker recovery keys through the VPN's service account. If that account could read them, every machine whose secrets it could see is in scope, well beyond the VPN box itself.
What this could look like: three typical setups
What this could look like: three typical setups
- the setup
- A regional services firm runs one virtual Connect Secure on 22.8R2.4. IT upgraded it to 22.8R2.5 the day after the first advisory, and the scanner went green.
- what happens
- The no-login bypass is closed, but the upload flaw and the root escalation are still open. Ivanti rates both as needing an authenticated attacker, and CISA lists both as exploited.
- what to do
- Upgrade to 22.8R2.6 this weekend and book the 25.1.1.3 move. Since the box ran 22.8R2.4 online from October 3 to 14, take memory images and check the LDAP account's activity.
- the setup
- A manufacturer's VPN binds to AD with an old service account that was given broad read rights years ago. LAPS keeps local admin passwords in AD without encryption turned on, and that account can read them.
- what happens
- If the appliance is owned, the attacker can pull the local admin password for every workstation and server that account can see. Patching the VPN does nothing about those passwords.
- what to do
- Rotate the service account and cut its rights to login checks only. Turn on Windows LAPS password encryption and force a rotation of every LAPS password the account could read.
- the setup
- An enterprise runs a two-node Connect Secure cluster on 22.7R2.14. Security confirms 22.7 isn't affected by any of the three CVEs and closes the ticket.
- what happens
- That's true today. But 22.7 reaches end of life on January 31, 2027. Ivanti's guide moves 22.7R2.14 to 25.1.3 by configuration migration, with no in-place upgrade. The next advisory may land on a line with no fixes left.
- what to do
- Plan the 25.1 move now. Check hardware against the 25.x guide, confirm vTPM for virtual nodes, and budget for breaking and rebuilding the cluster.
All three are made up, and none is a real incident or a Cohash client. The versions and behaviour come from Ivanti's, CISA's and Volexity's own pages.
How Cohash helps
Patching the appliance is usually quick. The slow part is the identity side, because someone has to work out what the VPN's account could read and then rotate it without breaking everyone's logins. Our identity threat detection and response practice does that work, and our Okta, Entra ID and CyberArk engineers handle the service account and rotation side. If you'd like a second pair of eyes on your exposure, start with an assessment.
What to take from this
- 01
Builds 22.8R2.5 and 25.1.1.2 closed only the first bug. Go to 25.1.1.3 or 22.8R2.6 to close all three.
- 02
Take memory and disk images before you patch a box that ran an affected build online since October 3.
- 03
A clean Integrity Checker result proves nothing here. The chain ran in memory and edited its own logs.
- 04
Rotate the VPN's directory account and check whether it could read LAPS passwords or BitLocker keys.
- 05
22.7 and 22.8 reach end of life on January 31, 2027. Book the 25.1 move now.
- How Cohash delivers Microsoft Entra ID: scope, roles and architecture
- How Cohash delivers Okta: scope, roles and architecture
- How Cohash delivers CyberArk: scope, roles and architecture
- Hire vetted Microsoft Entra ID engineers
- Identity Threat Detection & Response
- Book a 30-minute working session with a senior engineer
01Is my Ivanti VPN affected by this chain, and how do I check?
Look up the build in the admin console first. On 22.8, anything at 22.8R2.5 or below is affected, and on 25.1.1 it's 25.1.1.2 or below. Ivanti lists 25.1.2.x hardware builds under CVE-2026-104935, which 25.1.3.0 fixes. If you're on 22.7R2.14 or older, or 25.1.3.0 or newer, none of the three touch you.
02I patched in mid-October. Do I need to patch again?
Yes, if you went to 22.8R2.5 or 25.1.1.2. Those fixed CVE-2026-104935 only. The privilege escalation and upload bugs were fixed on October 29 in 22.8R2.6 and 25.1.1.3.
03Which version should I upgrade to?
Ivanti recommends 25.1.1.3 for 22.8 and 25.1.1.x appliances. If you can't leave 22.8 yet, 22.8R2.6 closes all three bugs. 25.1.3.0 and later aren't affected, but they need ISA4500, ISA6500 or ISA8500 hardware or a fresh virtual build. Only ISA6500 and ISA8500 can upgrade in place.
04Can I rely on Ivanti's Integrity Checker Tool to tell me if someone got in?
Probably not for this chain. CISA and Volexity both say it may not detect exploitation, because the attacker's code ran in memory and the changes were undone. Memory and network forensics are the way to tell.
05What did the attackers take?
In the case Volexity investigated, the attacker took domain credentials stored on the VPN and some Active Directory data. It also searched AD for LAPS passwords, BitLocker recovery keys and password attributes, captured LDAP traffic and tried passwords against staff accounts.
06What should I rotate if my VPN was compromised?
CISA says to reset passwords for all accounts, including domain, administrator and local ones; Ivanti adds the service accounts used for auth server configuration. Both also say to revoke and reissue stored certificates and reset stored API keys and license server credentials. If its directory account could read LAPS passwords or BitLocker keys, rotate those as well.
07When does Connect Secure 22.8 reach end of life?
On January 31, 2027, the same day as 22.7. Ivanti only ever meant 22.8 as a bridge, and it wants you on 25.1 before then. If you patched to 22.8R2.6 this week, you've still got that move ahead of you.
Three questions, about a minute
Pick an answer and we'll tell you if it's right, and why it is or isn't. The score stays in this browser.
-
Q1Your VPN went from 22.8R2.4 to 22.8R2.5 on October 14 and the scanner shows it clean for CVE-2026-104935. What's left?
show the answer
C. Upgrade to 22.8R2.6 or 25.1.1.3, because the other two bugs are still open 22.8R2.5 closed the bypass only. CVE-2026-111357 and CVE-2026-118527 were fixed on October 29 in 22.8R2.6 and 25.1.1.3, and both are on CISA's exploited list.
-
Q2An appliance ran 22.8R2.4 online from early October. The Integrity Checker comes back clean. What next?
show the answer
A. Take memory and disk images and investigate, since this chain doesn't leave changed files Volexity showed the chain patched code in memory and restored what it changed, so the tool saw nothing. A factory reset first would wipe the evidence you need.
-
Q3Your VPN binds to AD with a service account that can read LAPS passwords. The box may have been compromised. Which is the right call?
show the answer
B. Rotate the account, cut its rights, and rotate every LAPS password it could read The attacker Volexity tracked used the VPN's account to search AD for LAPS passwords. Anything that account could read should be treated as exposed.