Luki umożliwiające podmienianie obrazów i wykonanie kodu na serwerach ASU projektu OpenWrt

W rozwijanym projekcie OpenWrt w narzędziach ASU (Attended SysUpgrade) zidentyfikowano krytyczne luki w zabezpieczeniach (CVE-2024-54143), które pozwalają na skompromitowanie artefaktów budowlanych rozpowszechnianych przez serwis sysupgrade.openwrt.org lub zewnętrzne serwery ASU, co umożliwia zainstalowanie zmodyfikowanych obrazów oprogramowania układowego przez przestępców na systemach użytkowników korzystających z trybu „attended upgrade” przez interfejs webowy selector.openwrt.org lub narzędzia linii komend attended.sysupgrade.

Aby przeprowadzić skuteczny atak, przestępcy muszą jedynie wysłać zapytanie o utworzenie zestawienia na serwerze ASU (takie zapytania każdy użytkownik może wysłać bez autoryzacji). Dzięki manipulacjom z specjalnie przygotowaną listą pakietów, atakujący mogą zorganizować wysyłkę wcześniej wygenerowanych złośliwych obrazów w odpowiedzi na legalne zapytania o zestawienia innych użytkowników.

Serwis ASU jest używany w OpenWrt do tworzenia i instalowania aktualizacji oprogramowania układowego bez utraty istniejących ustawień i zainstalowanych przez użytkownika pakietów. Poprzez interfejs webowy lub narzędzia linii komend użytkownik wysyła zapytanie o utworzenie zaktualizowanego obrazu oprogramowania, wskazując pakiety zainstalowane w swoim systemie. Po pewnym czasie serwer ASU tworzy obraz zgodny z zamówioną treścią, po czym użytkownik go pobiera i instaluję na swoim urządzeniu. Dodatkowo dostępna jest opcja, która pozwala zachować istniejące ustawienia w zaktualizowanym oprogramowaniu.

Za przetwarzanie zapytań od użytkowników odpowiada serwer ASU, który uruchamia automatyczną budowę obrazów oprogramowania układowego z pomocą narzędzi ImageBuilder, a także utrzymuje pamięć podręczną zawierającą wcześniej przygotowane zestawienia. W przypadku, gdy użytkownik zażądał obrazu, który już wcześniej był tworzony i jest aktualny, system natychmiast zwraca istniejący obraz z pamięci podręcznej bez uruchamiania procesu budowy. serwerze i utrzymuje aktualność, system od razu zwraca dostępny obraz z pamięci podręcznej bez uruchamiania procesu budowy.

Zachowanie ataku stało się możliwe dzięki dwóm lukom w zabezpieczeniach:

  • Vulnerabilność w obsłudze żądań build_reques.py z narzędziem Imagebuilder, umożliwiająca wstrzyknięcie własnych poleceń do procesu budowania poprzez przesyłanie specjalnie sformatowanych nazw pakietów przez użytkownika. Usterka ta wynika z braku odpowiedniej weryfikacji znaków specjalnych w nazwach pakietów przed ich użyciem jako argumenty narzędzia make. Wykorzystując tę lukę, atakujący może utworzyć na serwerze złośliwe obrazy oprogramowania, podpisane poprawnym kluczem budowania.
  • Luka w bibliotece util.py, spowodowana tym, że hasze SHA-256, używane do weryfikacji istnienia w pamięci podręcznej gotowych obrazów oprogramowania, były skracane do 12 znaków, co znacznie obniżało poziom entropii i pozwalało na stworzenie złośliwego obrazu, którego hasz zgadzał się z legalnym obrazem. W połączeniu z luką w Imagebuilder, problem z haszami mógł być użyty przez atakującego do "zanieczyszczenia" pamięci podręcznej serwera ASU i umieszczenia w niej złośliwych obrazów, które byłyby zwracane na zapytania zwykłych użytkowników.

Zmiana, po której pojawiła się możliwość przeprowadzenia ataku, została wprowadzona 8 lipca. Problem został usunięty 4 grudnia. Do zapewnienia działania usługi ASU używano oddzielnych serwery, nie pokrywających się z głównymi systemami budowania projektu, oddzielonych od OpenWrt Buildbot i nie mających dostępu do takich poufnych zasobów, jak klucze SSH oraz certyfikaty do generowania podpisów cyfrowych.

Twierdzi się, że deweloperzy OpenWrt nie znaleźli śladów kompromitacji infrastruktury projektu, jednak dla pewności od zera przeinstalowali systemy, na których działały narażone komponenty. Problem nie dotknął oficjalnych obrazów rozpowszechnianych przez stronę downloads.openwrt.org, a podczas analizy logów budowy nie znaleziono śladów przesyłania złośliwych żądań. Przy tym, ponieważ na serwerach ASU jest stosowane automatyczne czyszczenie budów starszych niż 7 dni, audyt starych budów okazał się niemożliwy.

Prawdopodobieństwo wykorzystania ujawnionych luk w praktyce do rozpowszechniania złośliwych obrazów przez infrastrukturę OpenWrt jest przez przedstawicieli OpenWrt oceniane jako bliskie zeru, niemniej jednak użytkownikom ASU zaleca się zastąpienie oprogramowania OpenWrt na swoich urządzeniach tą samą wersją.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster