Frigate, otwarty rejestrator wideo (NVR), którego wielu użytkowników Home Assistanta używa do lokalnego wykrywania obiektów w obrazie z kamer, dostał wersję 0.18.2. Wydanie pojawiło się w nocy z 15 na 16 października 2026 i usuwa trzy luki bezpieczeństwa, których opisy opublikowano razem z nim. Dwie z nich mają ocenę krytyczną i dotyczą tylko wersji 0.18.0 i 0.18.1. Dodatek Frigate dla Home Assistanta przeszedł na 0.18.2 kilka minut po wydaniu.

Od podglądu do roota

Groźniejsza luka, GHSA-93xj-hg88-ffg7, ma 9,9 punktu w skali CVSS 3.1. Trzy ścieżki podglądu na żywo, /live/mse/api/ws, /live/webrtc/api/ws i /api/go2rtc/webrtc, nginx przekazuje prosto do API programu go2rtc. Omijają one filtr, którym Frigate blokuje źródła strumieni zdolne do uruchamiania poleceń. Zostaje tylko sprawdzenie, do których kamer dana rola ma dostęp. W domyślnej instalacji wbudowana rola viewer (tylko podgląd) ma pustą listę kamer, a Frigate traktuje pustą listę jako „wszystkie kamery”, więc to sprawdzenie w ogóle się nie wykonuje. Według biuletynu każde zalogowane konto, także świeżo utworzone konto z rolą viewer, może otworzyć połączenie WebSocket ze źródłem ffmpeg: i uruchamiać polecenia jako root wewnątrz kontenera.

Druga krytyczna luka, GHSA-qjjw-3v66-279f (CVSS 9,1), wymaga konta administratora. Lista zakazanych źródeł, dodana po CVE-2026-25643, blokowała echo:, expr: i exec:, ale nie ffmpeg:. Tymczasem go2rtc zamienia ffmpeg: wewnętrznie na exec: z argumentami podanymi przez atakującego. Administrator mógł więc dodać taki strumień, wywołać go przez adres API do zrzutów klatek i również dostać uprawnienia roota w kontenerze. Biuletyn zwraca uwagę, że według dokumentacji Frigate kontener działa z opcją privileged: true i ma podmontowane katalogi hosta, więc wyjście z kontenera jest realnym kolejnym krokiem.

Trzecia poprawka, GHSA-3cxh-fj2f-h497 (ocena średnia, 6,5), ma znaczenie, jeśli część kont ma dostęp tylko do wybranych kamer. Sprawdzanie uprawnień opierało się na surowej ścieżce żądania, a nginx przed wybraniem pliku tę ścieżkę normalizuje. Wystarczyła spreparowana ścieżka, na przykład //clips/... albo /./clips/..., żeby taki użytkownik pobrał klipy, zrzuty, nagrania i eksporty z pozostałych kamer i oglądał ich obraz na żywo. Jeden z trzech wariantów był regresją, którą wprowadziła poprawka z wersji 0.18.1.

Wersja 0.18.1 dwa dni wcześniej

Wydana 13 października wersja 0.18.1 zamknęła już trzy luki o średniej wadze. Jeśli kamera nazywała się tak jak grupa adresów API (faces, lpr, audio albo classification), Frigate przestawał wymagać uprawnień administratora dla tych adresów i konto z rolą viewer mogło przeglądać bazę twarzy oraz dodawać do niej dane uczące. Fragment wstawiony do nagłówka Host omijał autoryzację dostępu do nagrań i strumieni go2rtc. Do tego każdy zalogowany użytkownik mógł zapisać uszkodzoną subskrypcję powiadomień, przez którą Frigate przerywał pracę przy każdym uruchomieniu. To samo wydanie zmniejsza obciążenie procesora przy sprzętowym dekodowaniu Intel QSV dla kamer z dużą liczbą klatek na sekundę i wydłuża odstępy między restartami, gdy strumień nagrywania przestaje dostarczać obraz.

Co zrobić

Zaktualizuj Frigate do 0.18.2: w Dockerze pobierz obraz ghcr.io/blakeblackshear/frigate:0.18.2 albo wariant dla swojego akceleratora, a w Home Assistancie zaktualizuj dodatek. Jeśli nie możesz zrobić tego od razu, przejrzyj listę kont, również tych z rolą viewer, bo do wykorzystania luki z oceną 9,9 wystarczy zalogowanie. Jeśli interfejs WWW Frigate nie jest dostępny z internetu, krąg osób, które w ogóle mogą spróbować, jest dużo mniejszy.