Kritisk sårbarhet i Ruflo gir kommandokjøring uten pålogging

Noma Labs offentliggjorde 29. juli 2026 sårbarheten CVE-2026-59726 i Ruflo, en åpen plattform for å bygge og kjøre svermer av KI-agenter. I standardoppsettet med Docker Compose bandt plattformens MCP-bro seg til alle nettverksgrensesnitt på port 3001, uten autentisering. Broen eksponerer 233 verktøy, og ett av dem kjører vilkårlige skallkommandoer i beholderen. Noma Labs oppgir at én enkelt uautentisert HTTP-forespørsel var nok til full kommandokjøring. NVD oppgir at forholdet gjelder versjoner før 3.16.3, og at det er rettet i 3.16.3. Verdien 10,0 er satt av GitHub i rollen som CVE-utsteder, mens NVD ikke har gjort en egen vurdering.

Hva som skjer teknisk

MCP-broen er en tjener som tar imot verktøykall etter Model Context Protocol, og den er punktet all agentaktivitet i Ruflo går gjennom. Endepunktet POST /mcp tok imot kall og sendte dem rett videre til utføring uten noe autentiseringslag. Det fantes en sperreliste mot farlige kommandoer, men den gjaldt bare i den automatiske arbeidsflyten, og endepunktet omgikk den helt. Blant de 233 verktøyene ligger et verktøy for terminalkjøring, som kjører kommandoer som beholderens vanlige bruker. Vektoren NVD gjengir fra utstederen, CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H, uttrykker at angrepet skjer over nettverket, uten rettigheter og uten at en bruker gjør noe, at virkningen er full på konfidensialitet, integritet og tilgjengelighet, og at den strekker seg utenfor den sårbare komponenten. Svakhetstypene er oppgitt som manglende autentisering på kritisk funksjon, kommandoinjeksjon og for åpen kryssdomenepolicy.

Noma Labs viser en kjede i åtte steg som ble bekreftet mot et standardoppsett. Først listes verktøyene ut, deretter kjøres kommandoer. Nøklene til språkmodelleverandørene sendes inn som miljøvariabler i oppsettet og arves av bakgrunnsprosessene, slik at en enkel utlisting av miljøet henter dem alle. Videre kan angriperen starte egne agentsvermer på offerets nøkler og regnekraft, forgifte agentenes læringslager slik at framtidige svar påvirkes, og hente ut samtaler fra en MongoDB som kjørte uten autentisering på det interne nettet. Til slutt legges en bakdør inn som en ny fil i applikasjonskatalogen, lastet inn ved oppstart, der beholderens omstartsregel sørger for at den kommer tilbake. Leverandøren rettet forholdet innen få timer med en samlet endring, og rettingen binder broen til lokal sløyfe som standard, krever et symbol for tilgang, slår av terminalverktøyet med mindre det uttrykkelig skrus på, krever autentisering i databasen og kjører beholderen skrivebeskyttet. NVD registrerte oppføringen 9. juli 2026, mens Noma Labs publiserte analysen sin 29. juli.

Angriperuten påloggingPort 3001endepunktet POST /mcpMCP-broen233 verktøyKommandoer og nøklersamtaler og minne
Figur: Ett uautentisert kall mot port 3001 nådde alle verktøyene i broen, og derfra både skallkommandoer, nøkler, samtaler og agentenes læringslager.

Hva det betyr for virksomheten

Dette er en sak om skygge-KI før det er en sak om et enkelt produkt. Plattformer som denne installeres av en utvikler eller en avdeling som vil komme raskt i gang, ofte med et par kommandoer og egne API-nøkler. Vår vurdering er at risikobildet skifter karakter i det øyeblikket: en agentplattform trenger dyp tilgang til omgivelsene for å være nyttig, og den samler derfor legitimasjon, data og kjøretilgang på ett sted. Når det stedet står åpent uten pålogging, er det ikke en feilkonfigurasjon i en randtjeneste, men fri tilgang til alt plattformen kan.

Kostnaden ved en slik hendelse har også en hale som er lett å undervurdere. Nøkler til språkmodelleverandører kan brukes til å kjøre opp regninger og til å kjøre angrep i virksomhetens navn. Forgiftning av agentenes minne er verre, fordi den overlever en ny utrulling: en rettet versjon fjerner ikke de innsatte mønstrene, og de påvirker svarene videre uten at brukeren ser hvorfor. Vi vil derfor advare mot å regne en oppdatering som avslutning på hendelsen. For virksomheter under NIS2 er dette et konkret utslag av kravene i artikkel 21 til sikker konfigurasjon og til håndtering av sårbarheter, og ISO/IEC 42001 gir rammen for å styre hvilke KI-plattformer som i det hele tatt får kjøre.

Berigo anbefaler

  • Let etter Ruflo-installasjoner i egne miljøer, også de som er satt opp utenfor IT-avdelingen, og oppdater til versjon 3.16.3 eller nyere.
  • Steng portene 3001 og 27017 mot nettverket, slik leverandøren selv anbefaler, og kontroller at broen bare lytter lokalt.
  • Rotér alle nøkler til språkmodelleverandører som har vært satt som miljøvariabler i et eksponert oppsett.
  • Gjennomgå agentenes læringslager og samtaledatabasen for innsatte mønstre og uttrekk. En oppdatering fjerner ikke forgiftningen som allerede ligger der.
  • Krev at MCP-tjenere behandles som ethvert annet grensesnitt mot sensitive ressurser: autentisering på hver forespørsel, færrest mulig verktøy tilgjengelig, og ingen eksponering mot nettverket uten et uttrykkelig behov.

Sikkerhet som forstås, styres og virker.

La oss hjelpe dere å gjøre sikkerhet til et fortrinn, ikke en kostnad. Ta kontakt for en uforpliktende samtale om hvor virksomheten står, og hva som bør prioriteres først.

Ta kontakt