Cybersecurity-onderzoekers hebben kritieke kwetsbaarheden bij het uitvoeren van externe code ontdekt die van invloed zijn op grote inferentie-engines voor kunstmatige intelligentie (AI), waaronder die van Meta, Nvidia, Microsoft en open-source PyTorch-projecten zoals vLLM en SGLang.
“Deze kwetsbaarheden waren allemaal terug te voeren op dezelfde hoofdoorzaak: het over het hoofd geziene onveilige gebruik van ZeroMQ (ZMQ) en de augurk-deserialisatie van Python”, zei Oligo Security-onderzoeker Avi Lumelsky in een donderdag gepubliceerd rapport.
In de kern komt het probleem voort uit wat wel een patroon wordt genoemd SchaduwMQwaarin de onveilige deserialisatielogica zich naar verschillende projecten heeft verspreid als resultaat van hergebruik van code.
De hoofdoorzaak is een kwetsbaarheid in Meta’s Llama Large Language Model (LLM)-framework (CVE-2024-50050, CVSS-score: 6,3/9,3) dat afgelopen oktober door het bedrijf werd gepatcht. Concreet ging het om het gebruik van de recv_pyobj()-methode van ZeroMQ om inkomende gegevens te deserialiseren met behulp van de pickle-module van Python.
Dit, in combinatie met het feit dat het raamwerk de ZeroMQ-socket via het netwerk blootlegde, opende de deur naar een scenario waarin een aanvaller willekeurige code kan uitvoeren door kwaadaardige gegevens te verzenden voor deserialisatie. Het probleem is ook verholpen in de pyzmq Python-bibliotheek.
Oligo heeft sindsdien ontdekt dat hetzelfde patroon terugkeert in andere inferentieframeworks, zoals NVIDIA TensorRT-LLM, Microsoft Sarathi-Serve, Modular Max Server, vLLM en SGLang.
“Ze bevatten allemaal vrijwel identieke onveilige patronen: deserialisatie van niet-geverifieerde ZMQ TCP-sockets”, aldus Lumelsky. “Verschillende beheerders en projecten die door verschillende bedrijven worden onderhouden, hebben allemaal dezelfde fout gemaakt.”
Toen Oligo de oorzaak van het probleem opspoorde, ontdekte hij dat dit in ten minste een paar gevallen het gevolg was van het direct kopiëren en plakken van code. Het kwetsbare bestand in SGLang zegt bijvoorbeeld dat het is aangepast door vLLM, terwijl Modular Max Server dezelfde logica heeft geleend van zowel vLLM als SGLang, waardoor dezelfde fout feitelijk in alle codebases wordt bestendigd.
Aan de problemen zijn de volgende identificatiegegevens toegewezen:
- CVE-2025-30165 (CVSS-score: 8.0) – vLLM (hoewel het probleem niet is opgelost, is dit verholpen door standaard over te schakelen naar de V1-engine)
- CVE-2025-23254 (CVSS-score: 8,8) – NVIDIA TensorRT-LLM (opgelost in versie 0.18.2)
- CVE-2025-60455 (CVSS-score: N.v.t.) – Modulaire Max Server (vast)
- Sarathi-Serve (blijft ongepatcht)
- SGLang (onvolledige oplossingen geïmplementeerd)
Omdat inferentie-engines fungeren als een cruciaal onderdeel binnen AI-infrastructuren, zou een succesvolle compromis van een enkel knooppunt een aanvaller in staat kunnen stellen willekeurige code op het cluster uit te voeren, privileges te escaleren, modeldiefstal uit te voeren en zelfs kwaadaardige ladingen zoals cryptocurrency-mijnwerkers te laten vallen voor financieel gewin.
“Projecten ontwikkelen zich met een ongelooflijke snelheid en het is gebruikelijk om architecturale componenten van collega’s te lenen”, zei Lumelsky. “Maar als hergebruik van code onveilige patronen met zich meebrengt, zullen de gevolgen snel naar buiten treden.”
De onthulling komt nadat een nieuw rapport van AI-beveiligingsplatform Knostic heeft ontdekt dat het mogelijk is om de nieuwe ingebouwde browser van Cursor in gevaar te brengen via JavaScript-injectietechnieken, om nog maar te zwijgen van het gebruik van een kwaadaardige extensie om JavaScript-injectie te vergemakkelijken om zo de controle over het ontwikkelaarswerkstation over te nemen.
De eerste aanval omvat het registreren van een malafide lokale Model Context Protocol (MCP)-server die de controles van Cursor omzeilt, zodat een aanvaller de inlogpagina’s in de browser kan vervangen door een neppagina die inloggegevens verzamelt en deze naar een externe server onder hun controle exfiltreert.
“Zodra een gebruiker de MCP-server had gedownload en uitgevoerd met behulp van een mcp.json-bestand binnen Cursor, injecteerde deze code in de browser van Cursor die de gebruiker naar een valse inlogpagina leidde, die zijn inloggegevens stal en deze naar een externe server stuurde”, zei beveiligingsonderzoeker Dor Munis.
Aangezien de door AI aangedreven broncode-editor in wezen een afsplitsing is van Visual Studio Code, zou een slechte actor ook een kwaadaardige extensie kunnen maken om JavaScript in de actieve IDE te injecteren om willekeurige acties uit te voeren, waaronder het markeren van onschadelijke Open VSX-extensies als ‘kwaadaardig’.
“JavaScript dat binnen de Node.js-interpreter draait, of het nu wordt geïntroduceerd door een extensie, een MCP-server of een vergiftigde prompt of regel, neemt onmiddellijk de rechten van de IDE over: volledige toegang tot het bestandssysteem, de mogelijkheid om IDE-functies te wijzigen of te vervangen (inclusief geïnstalleerde extensies), en de mogelijkheid om code vast te houden die opnieuw wordt gekoppeld na een herstart”, aldus het bedrijf.
“Zodra uitvoering op tolkniveau beschikbaar is, kan een aanvaller de IDE omzetten in een platform voor de distributie en exfiltratie van malware.”
Om deze risico’s tegen te gaan, is het essentieel dat gebruikers Auto-Run-functies in hun IDE’s uitschakelen, extensies controleren, MCP-servers van vertrouwde ontwikkelaars en opslagplaatsen installeren, controleren tot welke gegevens en API’s de servers toegang hebben, API-sleutels gebruiken met minimaal vereiste machtigingen en de broncode van de MCP-server controleren op kritieke integraties.