El 2 de setembre CISA va afegir set vulnerabilitats al seu catàleg de fallades explotades. Tres són caixes de perímetre: dues de SonicWall i una centraleta de Sangoma. Unes altres tres són serveis que no va comprar ningú de compres, sinó que va aixecar algú de l'equip per anar més ràpid. I en queda una setena que no va instal·lar ningú, perquè va arribar dins d'una altra cosa. Dues de les set puntuen 10,0 sobre 10: una és la caixa de SonicWall, que no sorprèn ningú; l'altra és un orquestrador de fluxos de treball, i la raó per la qual s'obre cap en una línia de codi.
Els set del 2 de setembre
Ens vam descarregar el catàleg KEV sencer —el fitxer known_exploited_vulnerabilities.json que CISA publica— i vam mirar què hi va entrar aquell dia. Aquesta és la llista completa, sense retallar. Llegeix-la per la tercera columna, que és on hi ha el que interessa.
Artifactory és el magatzem d'artefactes: guarda els paquets que es despleguen i les credencials que els pugen. Kestra és un orquestrador de fluxos de treball: el seu ofici literal és executar coses amb permisos. LiteLLM és la passarel·la que es posa davant dels models de llenguatge per centralitzar les claus d'OpenAI, Azure o Anthropic. Els tres els va aixecar algú de dins, els tres tenen més privilegi que el tallafoc i cap no apareix en un inventari d'«equipament exposat».
Starlette mereix columna pròpia i per això la hi hem posada. És l'estructura de Python sobre la qual es construeixen moltes d'aquestes aplicacions, i arriba arrossegada com a dependència de FastAPI: no la va triar ningú, no escolta en un port seu, no té panell ni credencials ni configuració per defecte per revisar. El seu problema és d'una altra classe i probablement pitjor, perquè no apareix a la llista de serveis de ningú. Apareix, si de cas, en un fitxer de dependències que revisa una eina.
La línia
CVE-2026-49869, el 10,0 de Kestra, té una descripció que es llegeix d'una tirada. El filtre d'autenticació deixa passar sense credencials el punt de configuració públic, cosa raonable. El que no és raonable és com comprova que la petició hi va:
request.getPath().endsWith("/configs")
És una comparació per sufix, no per ruta exacta. Qualsevol camí de l'API l'últim segment del qual sigui configs se salta l'autenticació sencera. I n'hi ha un de molt interessant que acaba així: el que crea fluxos de treball. Amb això, un atacant sense credencials defineix un flux, tria l'executor de processos i aconsegueix execució d'ordres com a root dins del contenidor del treballador, perquè els complements d'execució de scripts vénen activats de fàbrica. De la comparació d'una cadena de text a root, sense cap contrasenya pel mig.
Ja hem escrit sobre aquesta família de fallades: és el control que falla obrint. Un control que, quan no sap què fer, deixa passar. La diferència entre endsWith i una comparació exacta és la diferència entre «s'assembla a la porta de servei» i «és la porta de servei». Un porter humà no confon les dues coses. Un filtre escrit amb pressa, sí.
«No és a Internet» ja no ordena la cua
L'avís de Kestra diu, amb totes les lletres, que la instància no necessita ser exposada a Internet: n'hi ha prou de tenir accés de xarxa al seu port, el 8080 per defecte. I el mode d'autenticació afectat —el bàsic— és el que porta Kestra OSS de sèrie.
Ara posa això al costat de com es decideix avui què es pedaça abans. La directiva amb què CISA ordena les agències federals, la BOD 26-04 del juny del 2026, va jubilar el règim anterior —dues setmanes per als CVE del 2021 endavant, sis mesos per als més vells— i el va canviar per un model de quatre factors. El primer dels quatre és si l'actiu està exposat. Els altres tres són ser al catàleg, si la fallada es pot automatitzar i quin impacte tècnic té. D'aquí surten els dos terminis de la taula: tres dies per a cinc de les entrades, catorze per a LiteLLM i Starlette. Per al que la directiva considera no exposat, el termini es pot estirar fins a «arregla-ho quan toqui actualitzar».
El model és assenyat i millor que l'anterior. El que falla és com l'apliquem els altres, perquè «exposat» s'ha convertit en una etiqueta que enganxem a un actiu comprovant si té una IP pública, i aquesta comprovació es queda molt curta. L'exposició no és una propietat de la màquina: és una propietat del camí que hi arriba. Aquell orquestrador que no publica res a fora és a un salt del corredor d'integració contínua, del portàtil que entra per una VPN que dóna la xarxa sencera, i de qualsevol altre contenidor del mateix amfitrió. Si res d'això es pot comprometre, el teu orquestrador està exposat. El que passa és que al full de càlcul hi posa que no.
Els quatre de dins fallen pel mateix
Posades les quatre fitxes en fila, el que les uneix és de què van. Cap no és un desbordament de memòria ni una fallada de corrupció exòtica: totes quatre toquen el codi que decideix qui entra.
- Artifactory — la fitxa de CISA diu que en la configuració per defecte un atacant sense autenticar amb accés de xarxa pot obtenir privilegis d'administrador. Per defecte.
- Kestra — la comparació per sufix de dalt. Mode d'autenticació per defecte.
- LiteLLM — al camí alternatiu del gestor d'autenticació MCP, una validació de clau fallida es podia substituir per un objecte d'autorització buit. Traduït: presentes un Bearer inventat i t'obre una sessió autenticada, amb la qual es llisten i s'invoquen les eines connectades. Arreglat a la 1.84.0.
- Starlette — contraban de peticions que permet injectar rutes a la part de l'amfitrió i, quan l'autenticació depèn de la ruta reconstruïda, saltar-se-la. És el cas més condicional dels quatre, i la mateixa fitxa de CISA avisa que es pot encadenar amb CVE-2026-42271.
Quatre productes diferents, quatre equips diferents, la mateixa classe d'error. I en dos dels quatre està escrit amb aquestes paraules a la fitxa: per defecte. És una conseqüència previsible de com es despleguen aquestes eines: s'aixequen amb un docker compose up per provar una tarda, es queden, i ningú no torna a mirar la part de l'arrencada que decideix l'autenticació perquè «és a la xarxa interna». El fitxer d'arrencada d'un servei que fa any i mig que corre és un document històric que gairebé ningú no rellegeix.
92 dies
La versió amb l'arranjament, la 1.3.21, va sortir el 2 de juny del 2026, i les seves notes ja esmenten «una possible omissió d'autenticació al filtre d'autenticació». L'avís de seguretat es va publicar l'endemà. CISA el va ficar al catàleg el 2 de setembre: noranta-dos dies. La fitxa pública del CVE, per cert, no va aparèixer fins al 26 de juny, vint-i-quatre dies després que el pedaç ja fos descarregable.
CISA no ha fet res malament: el catàleg admet una entrada quan hi ha constància d'explotació, i aquest és exactament el seu criteri declarat. El problema apareix quan algú el fa servir com a sistema d'avís primerenc, cosa que el catàleg mai no ha dit ser. Si la teva cua de pedaços l'ordena el KEV, per al programari que instal·les tu vas al darrere per disseny, i aquí el marge van ser tres mesos en què l'arranjament estava publicat i descarregable.
Les versions, perquè no calgui buscar-les: Kestra està arreglat a 1.0.45 i 1.3.21; afecta tot el que és anterior a 1.0.45 i la branca 1.1.0–1.3.20. LiteLLM, a 1.84.0.
Què es va fer amb l'accés, segons Microsoft
El 26 d'agost, una setmana abans que CISA publiqués la tanda, Microsoft va descriure tres compromisos reals en càrregues de treball d'IA: LiteLLM, RAGFlow i Kestra. Val la pena llegir què hi van fer els atacants, perquè desmunta la idea que un orquestrador compromès és «un servidor menys».
- A Kestra: execució d'intèrpret d'ordres a través del motor de fluxos, reconeixement de l'entorn de contenidors pel sòcol de Docker, un minador de criptomonedes i recol·lecció de dades a través del magatzem de clau-valor de la mateixa aplicació.
- A LiteLLM: recol·lecció de credencials de l'entorn del procés de la passarel·la, binaris disfressats, minador amb la CPU ajustada per no cantar, accés a la base de dades PostgreSQL del darrere i persistència amb claus SSH i entrades de cron.
- A RAGFlow: un ganxo de Python injectat a l'arrencada de l'aplicació per interceptar les claus dels proveïdors mentre es configuraven, i treure-les. Claus d'OpenAI, Azure, Anthropic i Gemini.
La frase amb què Microsoft ho resumeix val el clic: passarel·les, plataformes de recuperació, serveis d'orquestració i temps d'execució en contenidor «concentren credencials, accés a dades, connectivitat amb models i privilegis d'execució, cosa que els converteix en alguns dels components més poderosos de la pila d'IA». Canvia «pila d'IA» per «la teva xarxa» i continua sent veritat, perquè un orquestrador no necessita parlar amb un model per tenir les claus de tot.
I convé dir la part incòmoda: l'objectiu de gairebé tot això era minar criptomonedes amb la teva factura elèctrica i endur-se claus d'API. No hi va haver xifratge ni nota de rescat. És exactament el tipus d'incident del qual no t'assabentes que has tingut, cosa que és pitjor.
El que faríem dilluns
Nosaltres tenim n8n autoallotjat per a tasques internes, així que això ho escrivim amb la casa al davant i no des de fora. El tractem com un servei de producció: inventariat, amb amo i amb finestra d'actualització. Aquestes són les set coses que miraríem, en aquest ordre:
- Fes la llista. Quin programari autoallotjat corre a la teva xarxa que no va comprar ningú: orquestradors, repositoris d'artefactes, panells, passarel·les, coses d'IA, el runner de la integració contínua. Si surt de la memòria de dues persones i no d'un inventari, aquesta és la primera troballa.
- Posa-li amo i finestra. Un nom per servei i un dia al mes en què s'actualitza. Sense això, la resta de la llista es fa un cop i no es torna a fer.
- Prova d'arribar al port des de llocs estranys. Des de la xarxa de convidats. Des del portàtil que entra per VPN. Des d'un altre contenidor del mateix amfitrió. La llista de llocs des dels quals s'hi arriba és la teva exposició real, i sol ser més llarga del que diu el diagrama.
- Mira el sòcol de Docker. Si el contenidor el té muntat, comprometre'l és comprometre l'amfitrió. A Kestra va ser justament el camí del reconeixement. Treu-lo si no el necessites de debò.
- Apunta quines credencials guarda cadascun, a què arriben aquelles credencials i què passaria si algú les llegís totes de cop. En una passarel·la de models amb les claus de quatre proveïdors a dins, això es tradueix en una factura a més d'en un incident.
- Si eres en versió vulnerable, no n'hi ha prou d'actualitzar. Rota el que vivia a dins i busca el que Microsoft descriu: processos de mineria, claus SSH que no vas posar, entrades de cron noves, sortides a fons de mineria.
- Que l'alerta arribi. Un minador es veu a la CPU i al trànsit sortint molt abans que es noti en cap altra cosa. Si ningú no mira aquell gràfic, tant és que existeixi.
Els dos primers punts són els que de debò canvien alguna cosa, i són els més avorrits. Sobre el mateix problema vist per un altre costat n'hem escrit dues vegades: quan la cadena de desplegament guarda les claus de producció i quan el pilot d'IA que ningú va apagar es converteix en infraestructura sense que ningú ho decideixi.
Quan això no va amb tu
Si no tens cap d'aquestes quatre peces, no les instal·lis per llegir això. Una assessoria de dotze persones amb Microsoft 365 i un NAS no té cap orquestrador de fluxos i no el necessita; la seva versió del mateix problema és el servidor d'impressió, l'enregistrador de les càmeres o el NAS que també fa de servidor de còpies, i la pregunta útil continua sent la tercera de la llista: qui arriba a aquell port.
I tampoc no estirarem una tanda de set entrades fins a convertir-la en una tendència. Encara que, ja posats, l'honestedat va en les dues direccions: durant l'agost el catàleg es va passar ficant-hi Langflow, TeamCity, Metabase, Ray, MLflow, Gitea, ownCloud, PaperCut i ja un cop Artifactory, al costat dels tallafocs i els sistemes operatius de sempre. Això dóna suport a la nostra tesi més que no li'n donava el 2 de setembre. Tot i així són cinc setmanes de dades, i amb cinc setmanes no es declara una tendència; jutja-ho tu. El que sí que sostenim sense recompte pel mig és l'altra cosa: l'avís de Kestra diu que no cal ser a Internet, i això és incompatible amb ordenar la cua mirant si l'actiu té IP pública.
La pregunta que deixem, que es respon en deu minuts i no requereix comprar res: agafa l'orquestrador, el repositori o el panell més útil que tinguis muntat. Des de quants llocs de la teva xarxa s'arriba al seu port? Si la resposta és «des de tots», la puntuació del proper CVE que li surti ja no importa gaire.
Fonts: la llista de les set entrades del 2 de setembre del 2026, els seus productes, dates d'addició i terminis surten del catàleg KEV de CISA descarregat el 6 de setembre del 2026 (versió 2026.09.04) des del catàleg públic; d'allà surt també, literal, la descripció de CVE-2026-82329 sobre la configuració per defecte d'Artifactory. Els detalls tècnics de CVE-2026-49869 (la comparació per sufix al filtre d'autenticació, l'execució com a root al contenidor del treballador, les versions 1.0.45 i 1.3.21, la puntuació 10,0 i que no cal exposició a Internet) procedeixen de l'avís de seguretat de Kestra, publicat el 3 de juny del 2026. La data i la frase citada del llançament de la 1.3.21 (2 de juny del 2026) surten de les seves notes de versió; la data del 26 de juny és la del registre públic del CVE, no la de l'avís. Els de CVE-2026-59822 (l'objecte d'autorització buit al camí alternatiu i la versió 1.84.0), de l'avís de LiteLLM. El model de quatre factors i els terminis, de la directiva BOD 26-04, del juny del 2026. Els tres compromisos i la frase citada, de «When AI infrastructure becomes the target», Microsoft Security Blog, 26 d'agost del 2026. El que no afirmem: no diem quantes empreses espanyoles tenen aquestes peces muntades, perquè no ho sabem; no atribuïm els compromisos a cap grup concret; la classificació «perímetre / a dins / dependència» de la taula és nostra i no ve de CISA; i la lectura que la tanda del 2 de setembre assenyala un canvi de superfície és una lectura d'un sol dia, dita amb la reserva que això mereix.
Saps què corre a la teva xarxa que no va comprar ningú?
Muntem automatització amb amo, finestra d'actualització i la xarxa partida de manera que un contenidor compromès no arribi a tot. Nosaltres operem les nostres igual: si et diem que ho inventariïs, és perquè ens toca fer-ho a nosaltres primer.