Podatność w Gradle Enterprise (przed wersją 2021.3) oraz Gradle Enterprise Build Cache Node (przed wersją 10.0) umożliwia zatruwanie cache'u (cache poisoning) oraz zdalne wykonanie kodu (RCE) wskutek domyślnie otwartej konfiguracji dostępu. Zagrożenie jest krytyczne, ponieważ nie wymaga żadnego uwierzytelnienia ani interakcji użytkownika.
▸ Pokaż oryginał (EN)
In Gradle Enterprise before 2021.3 (and Enterprise Build Cache Node before 10.0), there is potential cache poisoning and remote code execution when running the build cache node with its default configuration. This configuration allows anonymous access to the configuration user interface and anonymous write access to the build cache. If access control to the build cache is not changed from the default open configuration, a malicious actor with network access can populate the cache with manipulated entries that may execute malicious code as part of a build process. This applies to the build cache provided with Gradle Enterprise and the separate build cache node service if used. If access control to the user interface is not changed from the default open configuration, a malicious actor can undo build cache access control in order to populate the cache with manipulated entries that may execute malicious code as part of a build process. This does not apply to the build cache provided with Gradle Enterprise, but does apply to the separate build cache node service if used.
Domyślna konfiguracja usługi build cache node zezwala na anonimowy dostęp do interfejsu konfiguracyjnego oraz anonimowy zapis do build cache'u. Atakujący z dostępem sieciowym może umieścić w cache'u spreparowane wpisy zawierające złośliwy kod, który zostanie wykonany podczas procesu budowania projektu. Dodatkowo, jeśli interfejs użytkownika build cache node pozostaje otwarty, atakujący może wyłączyć kontrolę dostępu do cache'u, a następnie przeprowadzić atak cache poisoning. Mechanizm ten dotyczy wyłącznie oddzielnej usługi build cache node — wbudowany build cache Gradle Enterprise nie jest podatny na atak przez interfejs użytkownika.
Atakujący bez żadnych uprawnień może zdalnie wykonać dowolny kod (RCE) w środowisku budowania ofiary, co może prowadzić do pełnego przejęcia procesu CI/CD, kradzieży artefaktów lub wstrzyknięcia złośliwego oprogramowania do wytwarzanego oprogramowania.
Należy zaktualizować Gradle Enterprise do wersji 2021.3 lub nowszej oraz Gradle Enterprise Build Cache Node do wersji 10.0 lub nowszej. Niezależnie od aktualizacji, należy niezwłocznie zmienić domyślną konfigurację dostępu: wyłączyć anonimowy zapis do build cache'u oraz ograniczyć dostęp do interfejsu konfiguracyjnego. Szczegółowe instrukcje dostępne są w poradniku producenta: https://security.gradle.com/advisory/2021-06
Gradle Enterprise w wersjach przed 2021.3 oraz Gradle Enterprise Build Cache Node w wersjach przed 10.0, działające z domyślną (otwartą) konfiguracją kontroli dostępu.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HGradle Build Cache Node
APPGradle< 10.0Gradle Enterprise
APPGradle< 2021.3
Powiązane podatności
Gradle Enterprise — domyślne nieunikalnie hasło użytkownika systemowego umożliwia przejęcie konta
RCE w Gradle Enterprise przez brak pliku konfiguracyjnego
Gradle Enterprise: dane uwierzytelniające Build Cache Node przechowywane bez szyfrowania
Gradle Enterprise — ujawnienie hasła w źródle strony ustawień
A credential-exposure vulnerability in the support-bundle mechanism in Gradle Enterprise 2022.3 through 2022.3...