Kritisk hull i Ruflo ga kommandokjøring gjennom en åpen MCP-bro
Noma Labs offentliggjorde 29. juli 2026 sårbarheten CVE-2026-59726 i Ruflo, en åpen plattform for orkestrering av KI-agenter. NVD oppgir CVSS-verdi 10,0 med vektoren CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H, og klassifiserer svakheten som manglende autentisering på en kritisk funksjon og som kommandoinjeksjon. I standardoppsettet med Docker Compose lyttet MCP-broen på port 3001 mot alle grensesnitt uten autentisering, og eksponerte 233 verktøy, blant dem kjøring av skallkommandoer. Feilen er rettet i versjon 3.16.3, og Noma Labs har publisert konkrete opprydningssteg.
Hva som skjer teknisk
MCP står for Model Context Protocol, og er grensesnittet en KI-agent bruker for å kalle verktøy. Broen i Ruflo er en tjener som tar imot slike kall over HTTP, og som utfører dem på vegne av agenten. Noma Labs beskriver at endepunktet tok imot kall uten noen form for pålogging, og at et enkelt oppslag listet ut alle de 233 verktøyene. Ett av dem kjører kommandoer inne i containeren. Én HTTP-forespørsel var derfor nok til å få utført kommandoer på maskinen, uten legitimasjon og uten at en bruker gjorde noe. Vektoren fra NVD sier det samme i kortform, med angrep over nettet, lav kompleksitet, ingen rettigheter, ingen brukerhandling og endret virkeområde.
Konsekvenskjeden Noma Labs viser, går videre derfra. Miljøvariablene i containeren inneholder API-nøklene til modelleverandørene, og de kunne leses rett ut. Med nøklene kan en angriper starte agenter for virksomhetens regning. MongoDB-databasen på port 27017 sto også uten pålogging, slik at tidligere samtaler kunne hentes ut, og mønsterlageret som agentene lærer av, kunne forgiftes. Årsaken var todelt. Broen bandt seg til alle grensesnitt som standard, og sperrelisten for farlige kommandoer gjaldt bare en annen del av løsningen, ikke endepunktet for verktøykall. Rettelsen i versjon 3.16.3 binder broen til det lokale grensesnittet, krever autentisering med en hemmelig nøkkel og nekter å starte uten den, slår av kommandokjøring som standard, krever pålogging mot databasen og erstatter åpen kryssdomenetilgang med en liste over tillatte opphav.
Hva det betyr for virksomheten
Berigos vurdering er at dette handler mindre om Ruflo enn om hvor slike plattformer settes opp. Rammeverk for KI-agenter installeres ofte av et utviklingsmiljø som prøver ut noe nytt, med standardoppsettet fra dokumentasjonen og en rask start i Docker. Standardoppsett er laget for at ting skal virke på en utviklermaskin, ikke for å tåle et nett andre når. Nøklene til modelleverandøren er samtidig noe som koster penger å bruke, og de er derfor et selvstendig mål for en angriper.
Den andre siden er at slike installasjoner sjelden står i aktivalisten. En sårbarhet med verdi 10,0 hjelper lite hvis ingen vet at programvaren kjører i virksomheten. Vår vurdering er at den praktiske oppgaven her er å finne ut hva som faktisk kjører, ikke å diskutere alvorlighetsgraden. For virksomheter under NIS2 er kravene i artikkel 21 til håndtering av sårbarheter og til sikkerhet ved anskaffelse og bruk av systemer den formelle hjemmelen. I ISO/IEC 27001 er kontroll 8.8 om håndtering av tekniske sårbarheter den operative, og den forutsetter at oversikten over programvare faktisk finnes.
Berigo anbefaler
- Let etter Ruflo i virksomheten, og se særlig etter åpne porter 3001 og 27017 mot både interne og eksterne nett.
- Oppgrader til versjon 3.16.3 eller nyere, og steng portene i brannmuren uansett.
- Bytt ut alle API-nøkler til modelleverandører som kan ha ligget i et eksponert oppsett.
- Gå gjennom mønsterlager og database for spor etter endringer, og se etter agentkjøringer dere ikke kjenner igjen.
- Ta agentplattformer inn i aktivalisten og i sårbarhetshåndteringen, på lik linje med annen programvare i drift.
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