Hopp til hovedinnhold

Søndag 8. november

 Tilbake Hjemmelab 3 min 04.12

Frigate 0.18.2 tetter hull som lot vanlige seere kjøre kommandoer som root

fredag 16. oktober · KI-generert · Kilde: Release notes from frigate

Innholdet er KI-generert og kan inneholde feil. Sjekk originalkilden.

Oppgrader Frigate til 0.18.2 nå, fordi to kritiske hull i 0.18.0 og 0.18.1 lar innloggede brukere kjøre vilkårlige kommandoer som root i containeren.

Frigate-prosjektet slapp 0.18.2 som en vedlikeholdsrelease med tre sikkerhetsrettinger, og GitHub-advisoriene ble publisert 15. oktober. Alle tre rammer 0.18.0 og 0.18.1. Det alvorligste, GHSA-93xj-hg88-ffg7, har CVSS 9,9: enhver innlogget konto, også en nyopprettet bruker med den innebygde viewer-rollen, kan få kommandokjøring som root uten noe spesialoppsett.

Feilen sitter i tre ruter, /live/mse/api/ws, /live/webrtc/api/ws og /api/go2rtc/webrtc, som nginx sender rett videre til go2rtc. Der kjøres aldri Frigates filter for farlige strømkilder. Den eneste kontrollen er en rollesjekk, og den slipper gjennom alle innebygde roller fordi en tom kameraliste betyr «alle kameraer». Åpner en seer en websocket med src=ffmpeg:..., starter go2rtc en ffmpeg-prosess med angriperens argumenter. Advisoryen viser også hvordan samme vei gir vilkårlig filskriving i containeren.

«Low privilege users can perform remote code execution as root, in default/recommend deployments» — GHSA-93xj-hg88-ffg7, Frigate

Det andre kritiske hullet, GHSA-qjjw-3v66-279f med CVSS 9,1, krever admin. Frigate innførte en denylist, is_restricted_go2rtc_source(), etter CVE-2026-25643. Den stopper kilder som starter med echo:, expr: og exec:, men ikke ffmpeg:, som go2rtc internt gjør om til exec: med angriperens argumenter. En admin kan registrere en slik strøm og trigge den gjennom /api/ffprobe/snapshot. Advisoryen peker på hvorfor root i containeren er verre enn det høres ut:

«Frigate's documented deployment runs the container privileged: true with host paths mounted, making container escape a realistic follow-on step.» — GHSA-qjjw-3v66-279f, Frigate

Det tredje hullet, GHSA-3cxh-fj2f-h497 med CVSS 6,5, handler om kameratilgang. Frigates /auth-sjekk leser den rå stien fra X-Original-URL, mens nginx dekoder %XX, slår sammen skråstreker og løser opp .-segmenter før den velger hva som serveres. En bruker som bare har tilgang til noen kameraer, kan dermed lese klipp, snapshots, opptak og eksporter fra alle de andre, og åpne direktestrømmene deres, med stier som //clips/... eller /./clips/.... Varianten med doble skråstreker er en regresjon fra rettingen av GHSA-935r-r3xx-6gmw i 0.18.1, versjonen Pulsen omtalte 14. oktober.

Mønsteret er lærerikt også utenfor Frigate. Både denylisten og stisjekken validerer en streng i én form, mens komponenten bak (go2rtc og nginx) tolker den i en annen. Bygger du egne tjenester med proxy eller strøm-URL-er foran, er det samme felle.

Hva bør du gjøre?

  1. Trekk ghcr.io/blakeblackshear/frigate:0.18.2, eller varianten du bruker, som -tensorrt, -rocm eller -standard-arm64, og start containeren på nytt.
  2. Gå gjennom brukerkontoene. Til du har oppgradert, kan hver viewer-konto i praksis kjøre kommandoer som root, så slett kontoer du ikke trenger og hold Frigate bak VPN.
  3. Sjekk om oppsettet ditt faktisk trenger privileged: true og monterte vertsstier, siden det er de som gjør root i containeren til en vei videre inn på verten.

Pulsen · norske KI-nyheter for deg som bygger. Sakene er KI-generert fra originalkilden, som alltid lenkes.