Google ujawnia lukę w zabezpieczeniach na GitHub

Project Zero opublikował szczegóły poważnego naruszenia bezpieczeństwa na GitHub i zgłaszają to błąd wpływa na polecenia przepływu pracy z GitHub i jest opisywany jako bardzo poważny. (Ten błąd został wykryty w lipcu, ale w oparciu o standardowy 90-dniowy okres ujawniania szczegóły zostały ujawnione dopiero teraz).

Ta wada stała się jedną z nielicznych luk, które nie zostały naprawione prawidłowo przed upływem standardowych 90-dniowych ram czasowych przyznanych przez Google Project Zero.

Według Felixa Wilhelma (kto ją odkrył), członka zespołu Project Zero, wada wpływa na działanie funkcji GitHub, narzędzia automatyzującego pracę programistów. Dzieje się tak, ponieważ polecenia przepływu pracy akcji są „podatne na ataki polegające na wstrzykiwaniu”:

„Działania Github obsługuje funkcję zwaną komendami przepływu pracy jako kanał komunikacji między brokerem akcji a wykonywaną akcją. Polecenia przepływu pracy są zaimplementowane w / src / Runner.Worker / ActionCommandManager.cs i działa poprzez analizowanie STDOUT wszystkich akcji wykonywanych poprzez szukanie jednego z dwóch znaczników poleceń.

Wspomnieć o tym dużym problemem związanym z tą funkcją jest to, że jest ona bardzo podatna na ataki polegające na wstrzykiwaniu. Ponieważ proces wykonywania skanuje każdy wiersz wydrukowany w STDOUT w poszukiwaniu poleceń przepływu pracy, każda akcja GitHub, która zawiera niezaufaną zawartość jako część jej wykonania, jest podatna na ataki.

W większości przypadków możliwość ustawienia dowolnych zmiennych środowiskowych powoduje zdalne wykonanie kodu zaraz po uruchomieniu innego przepływu pracy. Spędziłem trochę czasu na przeglądaniu popularnych repozytoriów GitHub i prawie każdy projekt wykorzystujący nieco złożone akcje GitHub jest podatny na tego rodzaju błędy.

Następnie podał kilka przykładów, jak można wykorzystać błąd a także zaproponował rozwiązanie:

„Naprawdę nie jestem pewien, jaki jest najlepszy sposób, aby to naprawić. Myślę, że sposób implementacji poleceń przepływu pracy jest zasadniczo niepewny. Deprecjonowanie składni polecenia v1 i wzmacnianie-env za pomocą listy dozwolonych prawdopodobnie działałoby przeciwko bezpośrednim wektorom RCE.

„Jednak nawet możliwość zastąpienia„ normalnych ”zmiennych środowiskowych używanych w późniejszych krokach prawdopodobnie wystarczy, aby wykorzystać bardziej złożone działania. Nie przeanalizowałem również wpływu na bezpieczeństwo innych elementów sterujących w obszarze roboczym.

Z drugiej strony, wspomnij, że dobre rozwiązanie długoterminowe byłoby przeniesieniem poleceń przepływu pracy do oddzielnego kanału (np. nowego deskryptora pliku), aby uniknąć analizowania przez STDOUT, ale spowoduje to uszkodzenie wielu istniejących kodów akcji.

Jeśli chodzi o GitHub, jego programiści opublikowali 1 października poradę i wycofali wrażliwe polecenia, ale argumentowali, że to, co znalazł Wilhelm, było w rzeczywistości „umiarkowaną luką w zabezpieczeniach”. GitHub przypisał identyfikator błędu CVE-2020-15228:

„W środowisku wykonawczym GitHub Actions zidentyfikowano umiarkowaną lukę w zabezpieczeniach, która może umożliwić wstrzykiwanie ścieżek i zmiennych środowiskowych do przepływów pracy, które rejestrują niezaufane dane w STDOUT. Może to prowadzić do wprowadzenia lub modyfikacji zmiennych środowiskowych bez intencji autora przepływu pracy.

„Aby pomóc nam rozwiązać ten problem i umożliwić dynamiczne ustawianie zmiennych środowiskowych, wprowadziliśmy nowy zestaw plików do obsługi aktualizacji środowiska i ścieżek w przepływach pracy.

„Jeśli korzystasz z samoobsługowych brokerów, upewnij się, że są one zaktualizowane do wersji 2.273.1 lub nowszej.

Według Wilhelma, 12 października Project Zero skontaktował się z GitHubem i proaktywnie zaoferował im 14-dniowe okno, gdyby GitHub chciał więcej czasu na wyłączenie podatnych na ataki poleceń. Oczywiście oferta została przyjęta i GitHub liczył na wyłączenie podatnych poleceń po 19 października. Project Zero następnie wyznaczył nową datę ujawnienia na 2 listopada.

źródło: https://bugs.chromium.org


Treść artykułu jest zgodna z naszymi zasadami etyka redakcyjna. Aby zgłosić błąd, kliknij tutaj.

Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.