CVE-2026-11816
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 41 - wyżej niż 41% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może nadpisać pliki konfiguracyjne, wstrzyknąć złośliwy kod lub uszkodzić zbiory danych i potoki uczenia maszynowego, co prowadzi do naruszenia integralności systemu i potencjalnego przejęcia kontroli nad aplikacją.
Rekomendacja
Należy niezwłocznie zaktualizować Keras do wersji 3.14.0 lub nowszej. W środowiskach, gdzie aktualizacja nie jest możliwa, należy unikać rozpakowywania archiwów z niepewnych źródeł oraz rozważyć ustawienie CWD na bezpieczny katalog.
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-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)
Keras versions prior to 3.14.0 are vulnerable to a path traversal issue in the archive extraction utilities located in `keras/src/utils/file_utils.py`. The functions `filter_safe_tarinfos()` and `filter_safe_zipinfos()` validate archive member paths against the process current working directory (CWD) instead of the actual extraction destination. When the process runs with CWD set to `/`, which is common in Docker containers, CI/CD runners, and Jupyter environments, the validation boundary becomes the filesystem root, allowing traversal paths to bypass the security check. Additionally, the zip filter contains a bug that causes an `AttributeError` when a blocked entry is encountered, leading to incomplete extraction. Furthermore, Python 3.11 installations lack the `filter="data"` safety net, leaving them entirely reliant on the flawed CWD-based filter. Exploitation of this vulnerability can result in arbitrary file writes outside the intended extraction directory, enabling attackers to overwrite configuration files, inject malicious code, or corrupt machine learning datasets and pipelines.

