CVE-2025-12058
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 - wyżej niż 15% wszystkich znanych CVE
Streszczenie
Metoda Keras.Model.load_model, nawet z włączonym safe_mode=True, jest podatna na odczyt dowolnych plików lokalnych oraz Server-Side Request Forgery (SSRF) poprzez specjalnie spreparowany plik .keras z warstwą StringLookup wskazującą ścieżkę lokalną lub zdalną.
Ocena ryzyka
Atakujący może odczytać poufne pliki z systemu hostującego lub wymusić żądania sieciowe do wewnętrznych zasobów, co może prowadzić do wycieku danych lub ruchu bocznego w sieci.
Rekomendacja
Zaktualizuj bibliotekę Keras do wersji zawierającej poprawkę i unikaj ładowania niezaufanych plików .keras.
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.Model.load_model method, including when executed with the intended security mitigation safe_mode=True, is vulnerable to arbitrary local file loading and Server-Side Request Forgery (SSRF). This vulnerability stems from the way the StringLookup layer is handled during model loading from a specially crafted .keras archive. The constructor for the StringLookup layer accepts a vocabulary argument that can specify a local file path or a remote file path. * Arbitrary Local File Read: An attacker can create a malicious .keras file that embeds a local path in the StringLookup layer's configuration. When the model is loaded, Keras will attempt to read the content of the specified local file and incorporate it into the model state (e.g., retrievable via get_vocabulary()), allowing an attacker to read arbitrary local files on the hosting system. * Server-Side Request Forgery (SSRF): Keras utilizes tf.io.gfile for file operations. Since tf.io.gfile supports remote filesystem handlers (such as GCS and HDFS) and HTTP/HTTPS protocols, the same mechanism can be leveraged to fetch content from arbitrary network endpoints on the server's behalf, resulting in an SSRF condition. The security issue is that the feature allowing external path loading was not properly restricted by the safe_mode=True flag, which was intended to prevent such unintended data access.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

