Podatność w Kedro (przed wersją 1.3.0) umożliwia zdalnemu atakującemu wykonanie dowolnego kodu poprzez manipulację ścieżką pliku konfiguracji logowania za pomocą zmiennej środowiskowej KEDRO_LOGGING_CONFIG. Jest to krytyczna podatność RCE, która może zostać wykorzystana już podczas uruchamiania aplikacji.
▸ Pokaż oryginał (EN)
Kedro is a toolbox for production-ready data science. Prior to 1.3.0, Kedro allows the logging configuration file path to be set via the KEDRO_LOGGING_CONFIG environment variable and loads it without validation. The logging configuration schema supports the special () key, which enables arbitrary callable instantiation. An attacker can exploit this to execute arbitrary system commands during application startup. This is a critical remote code execution (RCE) vulnerability caused by unsafe use of logging.config.dictConfig() with user-controlled input. This vulnerability is fixed in 1.3.0.
Kedro wczytuje plik konfiguracji logowania wskazany przez zmienną środowiskową KEDRO_LOGGING_CONFIG bez jakiejkolwiek walidacji jego zawartości. Funkcja logging.config.dictConfig() obsługuje specjalny klucz '()', który pozwala na tworzenie instancji dowolnych obiektów wywoływalnych (callable). Atakujący może dostarczyć spreparowany plik konfiguracyjny zawierający ten klucz, co prowadzi do deserializacji niezaufanych danych i wykonania dowolnych poleceń systemowych w momencie startu aplikacji. Podatność wynika z połączenia dwóch słabości: braku walidacji danych wejściowych (CWE-94) oraz niebezpiecznej deserializacji (CWE-502).
Atakujący może wykonać dowolny kod na serwerze z uprawnieniami procesu Kedro już w trakcie jego uruchamiania, co prowadzi do pełnego przejęcia kontroli nad systemem, wycieku danych oraz potencjalnego lateral movement w sieci.
Należy zaktualizować Kedro do wersji 1.3.0 lub nowszej, w której podatność została naprawiona. Dodatkowo zaleca się audyt środowisk pod kątem nieautoryzowanych modyfikacji zmiennej środowiskowej KEDRO_LOGGING_CONFIG oraz ograniczenie możliwości ustawiania zmiennych środowiskowych przez nieuprawnione podmioty.
Kedro (projektu Linux Foundation) we wszystkich wersjach przed 1.3.0.
Podatność została zgłoszona i naprawiona przez projekt Kedro (Linux Foundation). Szczegóły dostępne w security advisory GitHub: GHSA-9cqf-439c-j96r.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinuxfoundation Kedro
APPLinuxfoundation< 1.3.0
Powiązane podatności
Kedro is a toolbox for production-ready data science. Prior to 1.3.0, the _get_versioned_path() method in kedr...
containerd is an open-source container runtime. In versions prior to 1.7.33, 2.3.2, 2.2.5, 2.1.9, and 2.0.10 t...
CloudNativePG: eskalacja uprawnień do superużytkownika PostgreSQL przez metrics exporter
AGL app-framework-main: Zip Slip + TOCTOU umożliwiają zapis dowolnych plików
Spinnaker Echo: nieograniczony dostęp SPeL umożliwia RCE