
Three days ago I wrote about the NetScaler zero-days that landed on a Sunday, and the point was simple: the upgrade is step two, not step one. Look for signs of compromise first, then patch. This post is the awkward follow-up nobody wanted. Citrix has issued another bulletin, and if you patched on the weekend, you may have to patch again. Not because you did anything wrong. Because the builds that fixed the first wave are exactly the builds vulnerable to the second.
Patching is usually framed as an event with a beginning and an end. This week it was a staircase.
The second bulletin
On October 3, Citrix published guidance for CVE-2026-88779, a memory overflow flaw in NetScaler ADC and Gateway. It carries a CVSS score of 8.7, and Citrix says targeted attacks are already happening. The consequence is denial of service: trigger the condition repeatedly and the box can be held offline. There is no evidence so far of data being read or altered, just availability being hammered.
The exposure is conditional, and this is the part that matters. Only deployments that use SAML authentication alongside Gateway or AAA functionality are in scope. You check by looking at your configuration for a SAML SP profile (add authentication samlAction) or a SAML IdP profile (add authentication samlIdPProfile). If neither exists on the box, this particular bulletin does not touch you. If one does, the fix builds are 14.1-73.41, 13.1-64.28, and the matching FIPS releases.
And then there is the sentence Citrix included that should be printed on a card and taped to a monitor: if you upgraded with the releases from the first bulletin, covering CVE-2026-88771 through CVE-2026-88778, and your deployment meets these preconditions, upgrade again with the new releases. The weekend's fix is this week's floor.
Why the first patch was never the finish line
The eight-flaw bulletin from the weekend was the bigger emergency on paper. Two of the eight were zero-days already under active exploitation: CVE-2026-88771, which hits default configurations, and CVE-2026-88772, which hits DTLS VPN servers. Both allow remote code execution at CVSS 9.5, sometimes without any login at all. Google's threat intelligence group and Mandiant both published analysis of the active attacks, and the details are not theoretical. The attackers planted custom tooling: a PHP web shell called WHIPSHOT and a Python proxy and tunneler called SLAPSHOT, used to keep root access and pivot traffic from the appliance into the internal network. Observed targets so far sit in government, financial services, education, and legal and business services across North America and Europe.
Preconditions are the real triage key
Most patch workflows are version driven. You query the fleet, find everything below the fixed build, and schedule upgrades. That model breaks here because the two bulletins select different targets. The first one selected by exposure: anything internet-facing with a default config or DTLS VPN. The second selects by configuration: SAML authentication with Gateway or AAA.
Two appliances on the exact same build can have different risk profiles, and two appliances on different builds can need different patches. The version check alone will not tell you what to do. You have to check the configuration.
For a managed fleet, that suggests a different order of operations than the usual "patch oldest first" queue. Internet-facing boxes go first because they are the ones being actively scanned. Then check the SAML preconditions on everything, because that determines who needs the second upgrade. Then the rest. It is a little more work up front than blind version sorting, but it is the difference between patching the boxes that matter and patching in alphabetical order.
The table below is the judgment call I would use, not a runbook. Each fleet is different, but the ordering holds up.
| Fleet group | Why it comes first |
|---|---|
| Internet-facing ADC or Gateway on pre-weekend builds | Active exploitation of RCE zero-days, no login needed in some cases |
| Any box with SAML SP or IdP profiles configured | In scope for the second bulletin even if already patched once |
| Gateway or AAA boxes serving VPN users | DTLS attack surface, high value target |
| Internal-only ADC appliances | Lower priority but not zero; pivot traffic from a compromised edge box is real |
The middle ground nobody uses
Between "emergency change window tonight" and "it can wait," Citrix offers a third option: the Global Deny List feature, which pushes virtual patching signatures through NetScaler Console. For this flaw the signature version needs to be at least v24, and the mitigation applies to a specific band: 14.1 builds from 14.1-73.37 up to but not including 14.1-73.41, and 13.1 builds from 13.1-64.23 up to but not including 13.1-64.28. Verify with show appfw signatures and check the deny list counters with stat denylist global AAA_REQUEST.
That band is telling. It is exactly the range of builds that fixed the first wave. The mitigation exists for people who patched on the weekend and cannot immediately turn around and patch again. It is not a substitute for the upgrade, and Citrix says so plainly, but it buys time with a proper change window instead of a panicked one.
What Monday looks like
The practical shape of this is short. Get the weekend patch onto any internet-facing box that missed it, because the RCE zero-days are the worse threat. Run the SAML precondition check across the whole fleet, including the boxes already patched, because those are the ones the second bulletin is about. Schedule the second upgrade for the SAML boxes, and use the Global Deny List signatures as the bridge if the change window cannot happen this week. On every box that was exposed before the first patch, hunt for the compromise indicators: unknown PHP files, unfamiliar Python processes, unexpected outbound traffic toward the internal network.
That last step is the one from the previous post, and it is worth repeating because the instinct is to skip it once the second patch arrives. The patch closes the door. It does not evict anyone who already walked through.
The durable point here is not really about NetScaler. It is about how patching works when the vendor is shipping under fire. The first bulletin fixes what is known. The second bulletin fixes what was found while everyone was patching the first. If your process treats a patch as the end of the story, you will keep being surprised. Treat it as a snapshot, keep checking the preconditions, and build the fleet inventory so that the next "upgrade again" email is a query away instead of a scramble.
Sources
- Understanding and Addressing CVE-2026-88779 in Citrix NetScaler ADC and Citrix NetScaler Gateway — Citrix Community, October 3, 2026
- Critical Citrix vulnerabilities are being actively attacked — B2B Cyber Security, October 4, 2026



