CVE-2025-12060
WysokieCVSS 8.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 49 - wyżej niż 49% wszystkich znanych CVE
Streszczenie
API keras.utils.get_file w Keras, gdy używane z opcją extract=True dla archiwów tar, jest podatne na atak path traversal. Narzędzie używa funkcji tarfile.extractall bez filtra="data", co pozwala zdalnemu atakującemu na spreparowanie złośliwego archiwum tar zawierającego specjalne dowiązania symboliczne i zapisanie dowolnych plików w dowolnym miejscu w systemie plików. Podatność jest powiązana z CVE-2025-4517 w Pythonie, ale sama aktualizacja Pythona nie wystarczy – konieczna jest również aktualizacja Keras do wersji 3.12.
Ocena ryzyka
Atakujący może nadpisać krytyczne pliki systemowe lub aplikacji, co może prowadzić do wykonania kodu lub zniszczenia danych.
Rekomendacja
Zaktualizuj Keras do wersji 3.12 lub nowszej oraz rozważ aktualizację Pythona do wersji naprawiającej CVE-2025-4517 (np. 3.13.4).
Inne podatności w Keras
Zobacz wszystkie- CVE-2026-12481Krytyczne
W bibliotece Keras w wersji 3.14.0 wykryto podatność umożliwiającą zdalne wykonanie kodu. Problem wynika z nieprawidłowej obsługi deserializacji w warstwie `Lambda`, gdzie funkcja `_raise_for_lambda_deserialization()` nie egzekwuje trybu bezpiecznego, gdy `safe_mode` ma wartość `None` (domyślną). Powoduje to pominięcie zabezpieczeń i umożliwia deserializację złośliwego kodu bajtowego `marshal`.
- CVE-2026-12570Średnie
Podatność w keras-team/keras w wersjach do 3.15.0 umożliwia atak typu Denial of Service (DoS) podczas ładowania złośliwych plików modeli .keras przez funkcję keras.models.load_model(). Metoda H5IOStore.__getitem__ w keras/src/saving/saving_lib.py nie waliduje kształtu ani rozmiaru zbiorów danych, co prowadzi do nieograniczonego przydziału pamięci. Specjalnie spreparowany plik .keras może wywołać warunek braku pamięci (OOM), powodując zakończenie procesu (kod wyjścia 137). Problem omija poprawkę dla CVE-2026-0897, która dotyczyła podobnej luki w KerasFileEditor. Wektor ataku obejmuje zatrute modele z publicznych repozytoriów lub złośliwych rejestrów modeli, co stanowi zagrożenie dla potoków uczenia maszynowego przetwarzających niezaufane modele.
- CVE-2026-9335Średnie
Podatność w keras-team/keras w wersjach do 3.14.0 włącznie umożliwia ujawnienie zawartości dowolnych lokalnych plików HDF5 z powodu nieprawidłowego obsługiwania ExternalLinks. Funkcje `KerasFileEditor` i `keras.saving.load_weights` omijają pomocnicze funkcje `safe_get_h5_group` i `safe_get_h5_dataset`, które są zaprojektowane do odrzucania ExternalLinks i SoftLinks. Powoduje to automatyczne dereferencjonowanie linków do zewnętrznych plików HDF5, umożliwiając atakującym ujawnienie wrażliwych danych z lokalnego systemu plików ofiary.
- CVE-2026-12484Wysokie
Keras w wersji 3.15.0 zawiera podatność na niebezpieczną deserializację danych PyTorch pickle poprzez publiczną metodę `keras.layers.TorchModuleWrapper.from_config`. Metoda ta wywołuje `torch.load(..., weights_only=False)` bez wymagania jawnej zgody na niebezpieczne działanie. Poza kontekstem `SafeModeScope(True)` domyślnie dozwolona jest niebezpieczna deserializacja, co może prowadzić do wykonania dowolnego kodu.
- CVE-2026-12482Średnie
W bibliotece Keras w wersji 3.12.0 wykryto podatność polegającą na tym, że walidacja `filter_safe_tarinfos` w pliku `keras/src/utils/file_utils.py` nie sprawdza dowiązań symbolicznych (symlink) pod kątem próby opuszczenia docelowego katalogu. Atakujący może dostarczyć złośliwe archiwum tar, które ominie tę kontrolę i utworzy dowiązania symboliczne poza dozwolonym katalogiem.
- CVE-2026-12480Średnie
Podatność w bibliotece Keras (do wersji 3.13.2 włącznie) umożliwia odczyt dowolnego pliku HDF5 z systemu ofiary. Wynika to z niepełnej poprawki dla CVE-2026-1669 i braku weryfikacji właściwości `dataset.is_virtual` w metodach `H5IOStore._verify_dataset()` oraz `file_editor.py`. Atakujący może dostarczyć złośliwy plik modelu `.keras` lub wag `.h5` zawierający wirtualny zestaw danych (VDS) odnoszący się do zewnętrznych plików HDF5.
- CVE-2026-11816Wysokie
Podatność w Keras przed wersją 3.14.0 umożliwia przejście poza katalog docelowy podczas rozpakowywania archiwów. Funkcje walidujące ścieżki plików w archiwach odnoszą się do bieżącego katalogu roboczego (CWD) zamiast do rzeczywistego katalogu docelowego, co w środowiskach takich jak Docker, CI/CD czy Jupyter (gdzie CWD to '/') pozwala na ominięcie zabezpieczeń i zapis plików poza zamierzonym katalogiem.
- CVE-2026-1462Wysokie
W bibliotece `keras` w wersji 3.13.0 wykryto podatność w klasie `TFSMLayer`. Pozwala ona na ładowanie kontrolowanych przez atakującego modeli TensorFlow SavedModel podczas deserializacji plików `.keras`, nawet gdy włączony jest tryb bezpieczny (`safe_mode=True`). Problem wynika z bezwarunkowego ładowania zewnętrznych SavedModel, serializacji ścieżek plików kontrolowanych przez atakującego oraz braku walidacji w metodzie `from_config()`.
- CVE-2026-1669Wysokie
Podatność w mechanizmie ładowania modeli Keras (integracja HDF5) umożliwia zdalnemu atakującemu odczyt dowolnych plików lokalnych poprzez spreparowany plik modelu .keras wykorzystujący zewnętrzne odniesienia do zbiorów danych HDF5. Luka dotyczy wersji Keras od 3.0.0 do 3.13.1 na wszystkich obsługiwanych platformach.
- CVE-2026-0897Wysokie
Podatność w komponencie wczytywania wag HDF5 w Google Keras 3.0.0 do 3.13.0 umożliwia zdalnemu atakującemu wywołanie odmowy usługi (DoS) poprzez wyczerpanie pamięci i awarię interpretera Pythona. Atak polega na dostarczeniu spreparowanego archiwum .keras zawierającego plik model.weights.h5 z deklaracją bardzo dużego kształtu zbioru danych.
Oryginalny opis (angielski, źródło NVD)
The keras.utils.get_file API in Keras, when used with the extract=True option for tar archives, is vulnerable to a path traversal attack. The utility uses Python's tarfile.extractall function without the filter="data" feature. A remote attacker can craft a malicious tar archive containing special symlinks, which, when extracted, allows them to write arbitrary files to any location on the filesystem outside of the intended destination folder. This vulnerability is linked to the underlying Python tarfile weakness, identified as CVE-2025-4517. Note that upgrading Python to one of the versions that fix CVE-2025-4517 (e.g. Python 3.13.4) is not enough. One additionally needs to upgrade Keras to a version with the fix (Keras 3.12).
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

