GitHub Enterprise w wersjach 2.8.x przed 2.8.7 zawiera krytyczną podatność deserializacji w Management Console, która umożliwia nieuwierzytelnionemu atakującemu zdalne wykonanie dowolnego kodu. Przyczyną jest użycie stałego, zakodowanego na stałe w kodzie źródłowym sekretu sesji.
▸ Pokaż oryginał (EN)
The Management Console in GitHub Enterprise 2.8.x before 2.8.7 has a deserialization issue that allows unauthenticated remote attackers to execute arbitrary code. This occurs because the enterprise session secret is always the same, and can be found in the product's source code. By sending a crafted cookie signed with this secret, one can call Marshal.load with arbitrary data, which is a problem because the Marshal data format allows Ruby objects.
Aplikacja używa niezmiennego sekretu sesji, który jest obecny w publicznie dostępnym kodzie źródłowym produktu. Atakujący może wykorzystać znajomość tego sekretu do spreparowania podpisanego ciasteczka (cookie) i przesłania go do serwera. Serwer przetwarza ciasteczko wywołując funkcję Marshal.load z danymi kontrolowanymi przez atakującego. Format Marshal w języku Ruby umożliwia deserializację obiektów Ruby, co pozwala na wykonanie dowolnego kodu po stronie serwera bez żadnego uwierzytelnienia.
Nieuwierzytelniony zdalny atakujący może wykonać dowolny kod na serwerze z uprawnieniami aplikacji, co w praktyce oznacza pełne przejęcie kontroli nad instancją GitHub Enterprise. Zagrożona jest poufność, integralność oraz dostępność systemu.
Należy zaktualizować GitHub Enterprise do wersji 2.8.7 lub nowszej. Szczegółowe informacje o aktualizacji dostępne są w notach wydania producenta pod adresem enterprise.github.com/releases/2.8.7/notes
GitHub Enterprise w wersjach 2.8.x przed 2.8.7
Podatność została opisana publicznie na blogu exablue.de w artykule datowanym na 2017-03-15, choć wpis CVE opublikowano w 2019-03-28. Zakodowany na stałe sekret sesji sprawia, że exploit jest wyjątkowo łatwy do odtworzenia przez każdego, kto ma dostęp do kodu źródłowego produktu.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HGitHub
APPGithub2.8.72.8.0 – 2.8.7 (bez)
Powiązane podatności
Eskalacja uprawnień w GitHub Enterprise Server API
An improper access control vulnerability was identified in the GitHub Enterprise Server GraphQL API that allow...
A remote code execution vulnerability was identified in GitHub Enterprise Server that could be exploited when ...
A remote code execution vulnerability was identified in GitHub Enterprise Server that could be exploited when ...
GitHub Enterprise before 20120304 does not properly restrict the use of a hash to provide values for a model's...