Tornar al Blog

El butlletí deia «denegació de servei». L'exploit dona root: NetScaler CVE-2026-8452

Armari de comunicacions d'oficina amb un aparell de xarxa muntat en rack i llatiguets de fibra baixant des d'una safata de sostre

Tres dates i només una és teva. El 30 de juny Citrix va publicar el pedaç de CVE-2026-8452 i el va descriure com una denegació de servei. El 14 d'agost, quaranta-cinc dies després, uns investigadors van publicar l'anàlisi i el codi que converteixen aquesta mateixa fallada en execució de codi com a root, sense credencials. Els atacs van començar poc després i el 26 d'agost CISA la va ficar al seu catàleg de vulnerabilitats explotades amb data límit del 29. Les dues primeres dates les va decidir una altra gent. La tercera també. L'única que controles tu és quant triga la teva finestra de manteniment.

Això no va ser un dia zero. El pedaç feia un mes i mig que era publicat quan van començar els atacs. Qui el tenia posat no se'n va assabentar; qui el tenia a la llista del «ja ho mirarem després de vacances» va descobrir que el criteri amb què havia ordenat aquesta llista l'havia escrit el butlletí del fabricant.

El que deia la fitxa, paraula per paraula

La descripció oficial, publicada el 30 de juny i encara intacta, és aquesta: «Memory overflow vulnerability NetScaler ADC and NetScaler Gateway leading to unpredictable or erroneous behavior and Denial of Service if the appliance is configured as a Gateway (SSL VPN, ICA Proxy, CVPN, RDP Proxy) or AAA virtual server». Desbordament de memòria, comportament erràtic, denegació de servei. Res més.

I tanmateix, en aquesta mateixa fitxa, dues línies més avall, hi ha el vector CVSS 4.0 que puntua 8,8 amb AV:N/AC:L/AT:N/PR:N/UI:N i, atenció, VC:H. Vector de xarxa, complexitat baixa, zero privilegis, zero interacció de l'usuari i confidencialitat alta. Si el pitjor resultat possible fos que l'aparell es reinicia, la confidencialitat no hauria de sortir alta. Era a la mateixa fitxa, al camp que gairebé ningú no llegeix, mentre el resum en prosa parlava d'una altra cosa.

Aquest 8,8 el va posar el mateix fabricant, que actua com a CNA de les seves vulnerabilitats. La puntuació primària, la que signa el NIST, va arribar molt més tard: CVSS 3.1 de 9,8, CRÍTICA, amb confidencialitat, integritat i disponibilitat altes. El registre apareix com a analitzat i modificat per última vegada el 27 d'agost: un dia després que CISA la catalogués com a explotada, i dues setmanes després que el codi per explotar-la fos publicat. L'etiqueta es va corregir quan ja hi havia webshells.

Què fa de debò: una llista de prefixos massa llarga

El 14 d'agost, watchTowr va publicar el desarmament complet. La fallada és al tros de codi que canonicalitza signatures SAML: en processar l'element <SignedInfo>, l'aparell copia el contingut de l'atribut PrefixList a un búfer global de mida fixa «without checking whether it actually fits». N'hi ha prou de ficar dins d'InclusiveNamespaces una llista de prefixos llarga —del tipus N0 N1 N2 … N1999— per trepitjar la capçalera del búfer contigu.

A partir d'aquí la cadena és de manual i per això funciona tan bé: se sobreescriu el punter a dades que hi ha al desplaçament +0x50 d'aquesta capçalera, aquest punter l'utilitza després splitPktInner per fer un memcpy, i amb un memcpy del qual tries origen i destí tens escriptura arbitrària. Amb això se sobreescriu el punter de funció tx_pkt_complete_fptr i se salta al codi propi. El codi s'executa dins de nsppe, el motor de paquets, que corre com a root. Els investigadors van deixar a més el bit SUID posat a /bin/sh per conservar el privilegi a través de la webshell.

La condició perquè això sigui assolible, en paraules dels investigadors, és que «the Netscaler appliance is configured to use SAML as either a Service Provider (SP) or an Identity Provider (IdP)». És a dir: la porta s'obre al mateix lloc on l'aparell fa de porter. El component que valida qui ets és el que es trenca amb una petició sense autenticar.

Els 45 dies que vas tenir

Entre el pedaç i l'exploit públic van passar quaranta-cinc dies. Aquest buit és el més semblant a un regal que hi ha en aquest ofici: l'arranjament ja existia, el mapa per explotar-lo no. I es malgasta sempre per la mateixa raó, que no és la mandra.

Actualitzar l'aparell que acaba les VPN significa, a la pràctica, fer fora tothom. Els comercials perden la sessió, l'ERP publicat es talla, el torn de nit es queda fora. Per això l'equip de la vora és l'últim de la cua de pedaços: és justament el que no pots reiniciar a les onze del matí d'un dimarts. I per això, quan a sobre el butlletí diu «denegació de servei», la conversa s'acaba abans de començar: ningú no munta una finestra nocturna, avisa els usuaris i signa un canvi per prevenir un reinici.

La correcció no és «pedaceu més ràpid», que és un consell buit. És acceptar que l'etiqueta de gravetat del fabricant puntua la fallada, no puntua la teva exposició. Un aparell que mira a internet, acaba sessions i valida identitats no pot compartir cua amb el servidor de fitxers intern, es digui l'etiqueta com es digui. Aquest equip mereix la seva pròpia regla: finestra de manteniment pactada per endavant, no negociada cada vegada.

Com saber si estàs pedaçat sense tombar l'aparell

El primer és l'avorrit: les versions amb l'arranjament són 14.1-72.61, 13.1-63.18 i 13.1-37.272 per a les variants FIPS i NDcPP. Si ets a 12.1 o a 13.0 no hi ha pedaç per aplicar: Citrix no el publicarà per a aquestes branques, i el teu cas no és una tasca de pedaços sinó una migració de plataforma que ja arribes tard a planificar.

L'interessant és com confirmar-ho des de fora sense llançar l'exploit contra la teva pròpia producció, que és el que ningú no vol fer un dijous a la tarda. Bishop Fox va publicar un comprovador que fa servir la mida com a oracle: s'envia una petició SAML amb un PrefixList de 513 bytes o més i es mira la resposta. «A patched build turns the request away at a size check before it reaches the rewrite step, while an unpatched build carries on and eventually returns a generic internal error». A la pràctica: un aparell sense pedaç retorna 500 Internal Server Error 43549; un de pedaçat retorna 200 Malformed Assertion sent to Netscaler. Com a control es repeteix amb una llista curta —35 bytes— per assegurar-se que l'endpoint valida mides de debò i no contesta qualsevol cosa.

Amb dos peròs que convé dir en veu alta. El primer: cal apuntar al servidor virtual on viu la política, i provar cada VIP —«Aim at the virtual server where the policy actually lives, and test each VIP»—, perquè l'inventari de VIPs d'un NetScaler mitjà rarament cap al cap de ningú. El segon, més important: això et diu si l'arranjament és posat, no et diu si van entrar abans de posar-lo. Són dues preguntes diferents i la segona és la que fa mal.

El pedaç tanca la porta; no fa fora qui ja és a dins

Que un pedaç no fa fora qui ja va entrar ho diu mig sector des que hi va haver webshells. El que no hem vist enlloc és la contradicció que surt de posar dos textos oficials l'un al costat de l'altre. La guia de remediació del fabricant per a aquesta CVE diu que «the remediation is a single-step process and you need to upgrade the vulnerable NetScaler instances to a release and build that has the fix». Un pas: actualitzar. No esmenta sessions, ni credencials, ni revisar si l'aparell ja era tocat.

L'entrada de CISA demana una altra cosa. Al camp d'acció requerida, a més d'aplicar les mitigacions del fabricant, exigeix complir la directiva BOD 26-04 i els «Forensics Triage Requirements», i afegeix que cada organització és responsable d'«evaluating each asset's internet exposure». Traduït: l'organisme que obliga a pedaçar dona per fet que pedaçar no és suficient, i demana triatge forense al mateix paràgraf. Mentrestant, la descripció d'aquesta mateixa entrada del catàleg continua dient, a dia d'avui, «which could lead to denial of service».

Si el teu aparell va estar exposat amb SAML actiu i sense pedaç després del 14 d'agost, l'actualització és el primer punt d'una llista de quatre. El que es mira, en aquest ordre:

  • Fitxers que no vas posar tu. Previdian ho va explicar el mateix dia que va començar, amb un «This morning we started seeing exploitation for CVE-2026-8452» i tres IPs de tres països diferents: deixaven webshells amb noms tan discrets com x.php i z.php, i executaven comandes de reconeixement del tipus id i echo.
  • Binaris amb SUID. La cadena publicada deixa el bit posat a /bin/sh. Un /bin/sh amb SUID en un appliance és una resposta, no una pregunta.
  • Tot el que l'aparell sap. Un NetScaler guarda credencials de servei: el bind contra el directori, certificats, secrets de les polítiques. Amb root a dins, això ja no és teu en exclusiva. Rotar-ho és l'única cosa d'aquesta llista que no admet «la setmana que ve».
  • Les sessions vives. Un token de sessió emès abans del pedaç continua valent després del pedaç. És el mateix error de raonament que ja vam explicar quan algú va apagar l'EDR amb un reinici: s'arregla el mecanisme i es deixa intacte l'estat que l'atacant ja es va endur.

Quan això no és el teu problema

Sense NetScaler, això no va amb tu, i no cal que ningú et vengui urgència per una marca que no tens. Amb NetScaler però sense SAML configurat com a SP o IdP, la cadena publicada no t'arriba —tot i que l'avís del fabricant parla també de configuracions de Gateway i de servidor virtual AAA, així que el criteri prudent és pedaçar igualment i no discutir el matís amb qui t'està escanejant—. I si l'aparell no publica res a internet, tens temps de sobres: posa-li data al calendari del pròxim manteniment i oblida-te'n fins aleshores.

Sobre la mida de l'assumpte convé ser igual d'honest. Les xifres de Shadowserver —més de 22.000 NetScaler ADC i prop de 1.800 Gateway abocats a internet— ja les vam mirar fa sis dies, quan vam escriure que a NetScaler la teva versió no et diu si estàs exposat, i el matís continua sent el mateix: mesuren superfície. El recompte de compromesos no el té ningú, perquè allà dins hi ha esquers, aparells ja pedaçats i configuracions que mai no exposen la ruta vulnerable. El que ha canviat en aquests sis dies és que ara el codi per entrar és publicat.

Sí, un altre cop la mateixa conclusió

No fingirem que això és una troballa nova, ni tan sols per a nosaltres. Ahir vam escriure que la fallada de Gitea «requereix permís d'escriptura» i que aquest permís el regala el formulari de registre; abans-d'ahir, que el teu proveïdor d'identitat no és una aplicació, és infraestructura. Tres posts en una setmana amb la mateixa cosa a sota: la fitxa descriu la fallada i la instal·lació l'has de descriure tu. Quan una cosa es repeteix així deixa de ser una notícia i passa a ser una propietat del sistema; la propietat, aquí, és que l'ordre de la teva cua de pedaços l'està escrivint el departament de màrqueting tècnic d'una altra empresa. I la descripció d'aquesta CVE continua igual dos mesos després, amb els atacs ja documentats.

Què hi fem nosaltres, amb això

No venem llicències de Citrix ni de ningú: dissenyem, desplegem i mantenim infraestructura, i per això el que segueix no és una recomanació de producte. La nostra feina amb un avís així és avorrida i no té truc. Comença per saber què respon de debò des de fora —per això mantenim la xarxa documentada a NetBox, que és la font de veritat i no el full de compres—, continua per tractar l'equip de la vora com un cas a part quan toca decidir a quina hora es pot reiniciar, i acaba, si l'aparell va estar exposat, en credencials i en sessions.

És el que hi ha darrere del nostre servei de ciberseguretat i de l'EDR/MDR gestionat: no una consola bonica, sinó algú que sap quins equips teus miren a internet i que, quan surt un avís, ja té decidit per endavant a quina hora es pot reiniciar cadascun. Si no tens aquesta llista, comença per aquí; i si la tens però ningú no la mira els dissabtes, per això hi ha el suport 24×7.

Fonts (verificades una a una): descripció oficial de la vulnerabilitat, data de publicació (30 de juny de 2026), vector CVSS 4.0 de 8,8 del fabricant com a CNA amb PR:N i VC:H, puntuació primària del NIST de 9,8 CRÍTICA en CVSS 3.1 i estat del registre (analitzat, última modificació el 27 d'agost de 2026) — NVD, CVE-2026-8452; data d'inclusió al catàleg (26 d'agost), termini del 29 d'agost, text de l'acció requerida amb BOD 26-04 i els «Forensics Triage Requirements» — CISA KEV; anàlisi tècnica, condició de SAML com a SP o IdP, execució com a root a nsppe i SUID a /bin/shwatchTowr Labs, 14 d'agost de 2026; mètode de comprovació per mida (513 bytes, error 43549 davant de «Malformed Assertion»), prova per VIP i absència de pedaç per a 12.1 i 13.0 — Bishop Fox; remediació «d'un sol pas» del fabricant — documentació de NetScaler Console; webshells x.php i z.php, comandes de reconeixement i confirmació d'explotació per Defused i Previdian — Help Net Security; recompte d'aparells exposats segons Shadowserver — BleepingComputer. Tot consultat el 28 d'agost de 2026. Els 45 dies entre pedaç i exploit públic són una resta nostra sobre aquestes dates. No vam provar el comprovador de Bishop Fox contra equips aliens ni et recomanem fer-ho: es llança contra els teus i amb permís per escrit.

Saps quins equips teus responen des d'internet?

Repassem amb tu quins equips teus responen des de fora, els creuem amb els avisos oberts i decidim junts quins no poden esperar a la pròxima finestra. Sense alarmisme i amb les dates al davant.

Parlar amb everyWAN

Etiquetes:

Compartir:

Subscriu-te al nostre butlletí

Per rebre històries del món IT, novetats d'everyWAN i ofertes exclusives per a subscriptors, dona't d'alta a la nostra llista de correu

everyWAN
everyWAN