Bifrost propust omogućava komande bez autentikacije

Kritična ranjivost CVE-2026-90898, sa CVSS ocenom 9,8, u otvorenokodnom AI mrežnom prolazu Bifrost omogućava neautorizovanom napadaču da jednim HTTP zahtevom pokrene proizvoljnu komandu na serveru. Problem pogađa sve verzije Bifrost HTTP transporta pre transports/v2.1.0 kada je autentikacija upravljačkog interfejsa isključena, a to je podrazumevana postavka.
Bifrost usmerava zahteve ka više od 20 LLM provajdera i čuva API ključeve za povezane servise. Zbog toga izvršavanje komandi u kontekstu procesa mrežnog prolaza može napadaču otvoriti pristup tim akreditivima, pored neposredne kontrole nad procesom.
Kako dolazi do izvršavanja komandi
Yuval Moravchick iz JFrog Security Research otkrio je da napadač može bez prijave poslati POST zahtev upravljačkom API-ju na putanju /api/mcp/client i registrovati MCP klijenta tipa stdio. Bifrost zatim odmah pokreće navedenu komandu, pre MCP rukovanja, sa privilegijama korisnika pod kojim radi mrežni prolaz.
U zvaničnoj Docker slici taj korisnik je appuser. Podrazumevana binarna verzija Bifrosta upravljački API vezuje za localhost, čime je izloženost ograničena na lokalnu mašinu. Međutim, zvanična Docker slika ga vezuje za 0.0.0.0; ako je port objavljen, upravljački API može biti dostupan izvan kontejnera.
Verzije i preporučene mere
Ispravka je dostupna u izdanju transports/v2.1.0, koje neautentikovanom pozivaocu vraća odgovor 403 pri pokušaju registracije stdio MCP klijenta. Verzija transports/v2.0.0 i dalje je pogođena ovom ranjivošću: ona rešava samo raniji problem sa dodacima. Grana 1.6.x, zaključno sa verzijom 1.6.11, nema nijednu od tih ispravki.
Druga povezana ranjivost, CVE-2026-86242 sa CVSS ocenom 8,1, omogućava registraciju prilagođenog dodatka čija je putanja HTTP URL. Bifrost preuzima datoteku, zapisuje je kao privremeni deljeni objekat i učitava preko Go funkcije plugin.Open. Na dinamički povezanim izgradnjama to omogućava izvršavanje koda pod korisnikom procesa; na statički povezanim izgradnjama, uključujući zvaničnu Docker sliku, posledica je SSRF. Za taj propust dostupna je ispravka u transports/v2.0.0.
Operativni prioriteti
Obe ranjivosti imaju zajednički uzrok: upravljački API stiže sa podrazumevano isključenom autentikacijom. JFrog preporučuje da se instance koje su radile bez autentikacije uz izložen upravljački API tretiraju kao kompromitovane i da se rotiraju virtuelni i API ključevi provajdera.
Dok ažuriranje nije moguće, potrebno je postaviti governance.auth_config.is_enabled na true, koristiti snažne akreditive i zadržati upravljački interfejs van nepouzdanih mreža. Za poslovanje je neposredan zaključak da treba popisati Bifrost instance, proveriti dostupnost njihovih upravljačkih portova, nadograditi ih na transports/v2.1.0 i po potrebi obnoviti sve poverljive ključeve.

