Een kwaadaardige webpagina kan uw lokale AI-model achter NVIDIA NemoClaw vergiftigen

Oasis Security heeft een zwakte onthuld in NVIDIA NemoClaw waarmee een door een aanvaller bestuurde webpagina niet-geverifieerde controle kan krijgen over de lokale Ollama-instantie die een AI-agent bedient en verborgen instructies in het model zelf kan plaatsen.

De bevindingen werden vóór publicatie gedeeld met The Hacker News en volgens het rapport heeft Oasis Security ze vooraf gerapporteerd aan het Product Security Incident Response Team (PSIRT) van NVIDIA. Het onderzoek draagt ​​geen CVE-identificatie. Er is geen uitbuiting gemeld vanaf 25 augustus 2026.

Elad Luz, hoofd onderzoek van Oasis Security, vertelde The Hacker News dat NemoClaw v0.0.35 het probleem op macOS en Linux heeft opgelost. Volgens Luz is er geen oplossing voor het Windows- en WSL-pad, waar v0.0.34 een Windows-installatie heeft toegevoegd die in plaats daarvan een waarschuwing bevat.

NemoClaw is NVIDIA’s open source referentiestack voor het uitvoeren van agents zoals OpenClaw in de OpenShell-sandboxen, en Ollama is een van de ondersteunde lokale inferentie-backends.

Het rapport beschrijft hoe NemoClaw Ollama startte OLLAMA_HOST=0.0.0.0:11434waarbij de modelserver aan elke netwerkinterface wordt gekoppeld, en zegt dat de resulterende API-toegang een aanvaller in staat stelt de chatsjabloon van het model te wijzigen, zodat verborgen instructies op elk later gesprek worden toegepast.

“Sandboxing beschermt het eindpunt, maar het overnemen van de agent neemt de toegang en tools over”, aldus Oasis Security in het rapport.

NVIDIA’s eigen Ollama-installatiedocumentatie en de huidige bron plaatsen die binding op één platformpad. De Ollama-behandeling van NemoClaw verschilt per platform –

  • Niet-WSL-hosts houd Ollama aan 127.0.0.1:11434 achter een token-gated reverse proxy aan 0.0.0.0:11435en bij het onboarden wordt een daemon die al ergens anders is gebonden, opnieuw opgestart naar loopback.
  • Docker Desktop op WSL slaat de proxy over, omdat de container het loopback-adres van de host bereikt host.docker.internal.
  • Het Windows-host Ollama-pad sets OLLAMA_HOST=0.0.0.0:11434 zodat Docker Desktop-containers de daemon kunnen bereiken en geen authenticatie op poort 11434 vereisen.

Ollama’s eigen NemoClaw-integratiepagina adviseert ook de instelling OLLAMA_HOST=0.0.0.0 bij het uitvoeren binnen WSL2 of een container, en het binden ervan aan 0.0.0.0 is eerder geïdentificeerd als de verandering die Ollama-instanties buiten de lokale machine blootlegt.

De API op poort 11434 heeft geen authenticatie en vertrouwt op twee middleware-lagen om door de browser gegenereerde verzoeken te blokkeren. Als het bindadres geen loopback is, wordt de controle van de hostheader volledig overgeslagen. De Cross-Origin Resource Sharing (CORS)-laag behandelt het verzoek vervolgens als dezelfde oorsprong en staat dit toe, omdat de Origin- en Host-headers beide het eigen domein van de aanvaller dragen. Dat geldt voor een pagina die de aanvaller bezoekt op poort 11434.

Domain Name System (DNS) rebinding dicht het gat, waarbij het domein van de aanvaller eerst naar zijn eigen server verwijst en vervolgens naar 127.0.0.1 terwijl de browser de verzoeken blijft behandelen als dezelfde oorsprong.

Luz zei dat de volledige keten op macOS met Firefox is getest tegen een kwetsbare NemoClaw-versie. Het verifiëren van de Host- en Origin-headers is de standaardoplossing voor die aanvalsklasse.

DNS-rebinding tegen de API van Ollama is zelf gedocumenteerd. Ollama heeft op 14 maart 2024 een oplossing in v0.1.29 verzonden en NCC Group publiceerde het advies de volgende maand als CVE-2024-28224. In dat advies werd aanbevolen de Host-header aan de serverzijde te valideren om alleen een reeks geautoriseerde waarden toe te staan.

Ollama introduceerde die validatie als reactie op de onthulling uit 2024, aldus Luz.

“Maar Ollama slaat die validatie over wanneer het gebonden is aan een niet-loopback-adres, en 0.0.0.0 is precies hoe NemoClaw het configureert”, zei hij.

Als de API bereikbaar is, schrijft de payload van het rapport een aangepast Go-sjabloon door /api/create. De sjabloon bepaalt hoe de gestructureerde berichtenarray wordt weergegeven in onbewerkte tekst voordat het model deze verwerkt, en de vergiftigde versie voegt door de aanvaller gecontroleerde tekst toe aan elk systeembericht tijdens de gevolgtrekking.

Instructies die op deze manier worden geplaatst, blijven bestaan ​​in latere gesprekken en overleven de agent die zijn eigen systeemprompt levert, aldus het rapport.

“De klant kan dit niet detecteren of voorkomen – de sjabloon is een eigenschap op modelniveau die onzichtbaar is voor API-consumenten”, aldus Oasis Security.

The Hacker News heeft de NemoClaw-repository tijdens de commit beoordeeld 17f0ca3b op 25 augustus en ontdekte dat de lokale Ollama-proxy weigert te starten tegen een backend die niet gebonden is aan loopback, een standaard geïntroduceerd in v0.0.106 op 10 augustus. De proxy wordt afgesloten met een speciale statuscode en drukt af:

“Weigert te starten: een Ollama-daemon die bereikbaar is op een niet-loopback-interface omzeilt de tokencontrole van de proxy volledig. Stel OLLAMA_HOST=127.0.0.1:${port} in op de Ollama-systeemeenheid of stel NEMOCLAW_OLLAMA_PROXY_SKIP_BIND_PROBE=1 in op overschrijven (niet aanbevolen).”

Die controle kan worden uitgeschakeld door in te stellen NEMOCLAW_OLLAMA_PROXY_SKIP_BIND_PROBE=1en het mislukt niet bij het sluiten op hosts waar de bindingscontrole niet kan worden uitgevoerd.

De controle wordt uitgevoerd binnen de proxy zelf. NemoClaw start die proxy niet op de WSL-paden, en de Windows-hostconfiguratie is daar een van. De standaard v0.0.106 bereikt daarom niet het platformpad waar de 0.0.0.0 binding is ingesteld.

In dezelfde review werd nergens in de repository de integriteitscontrole van de chat-sjabloon aangetroffen, waarbij NemoClaw de gegevens van Ollama ondervroeg /api/show eindpunt alleen voor de oorspronkelijke contextlengte van een model en de aangegeven mogelijkheid voor het aanroepen van tools.

De documentatie van NVIDIA instrueert operators op het Windows-hostpad om poort 11434 niet bloot te stellen aan een LAN of internet. Deze richtlijnen hebben betrekking op inkomende toegang vanaf het netwerk. De rebinding-keten heeft dit niet nodig, omdat de browser die de verzoeken doet al op de host draait en de daemon bereikt op 127.0.0.1.

Het vergiftigen van de chatsjabloon van een model, zodat instructies worden uitgevoerd tijdens de gevolgtrekking, is eerder gedocumenteerd als vergiftigde chatsjablonen. Onderzoekers van Oasis Security documenteerden eerder deze maand dezelfde techniek tegen Paperclip en gebruikten in februari een vergelijkbaar browser-naar-localhost-pad om lokale OpenClaw-agents te kapen.

Thijs Van der Does