CVE-2026-100846
WysokieCVSS 7.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 20 - wyżej niż 20% wszystkich znanych CVE
Streszczenie
MONAI przed wersją 1.5.2 zawiera podatność deserializacji niezaufanych danych w funkcji algo_from_pickle w monai/auto3dseg/utils.py. Funkcja wczytuje plik .pkl i przekazuje jego zawartość do pickle.loads bez walidacji źródła lub zawartości. Jeśli aplikacja wywoła algo_from_pickle na pliku dostarczonym przez atakującego, obiekt definiujący __reduce__ zostanie wykonany podczas deserializacji, co prowadzi do wykonania dowolnego kodu.
Ocena ryzyka
Atakujący może wykonać dowolny kod w kontekście aplikacji, co może prowadzić do pełnej kompromitacji systemu i kradzieży danych.
Rekomendacja
Zaktualizuj MONAI do wersji 1.5.2 lub nowszej. Nie wywołuj algo_from_pickle na niezaufanych plikach.
Inne podatności w MONAI
Zobacz wszystkie- CVE-2026-119578Wysokie
MONAI od wersji 1.6.0 przed 1.6.1 zawiera podatność zdalnego wykonania kodu w funkcji Auto3DSeg algo_from_json(). Atakujący może uruchomić kod Python poprzez spreparowany plik algo_object.json w katalogu roboczym.
- CVE-2026-118684Średnie
MONAI przed wersją 1.6.1 zawiera lukę niewystarczającej weryfikacji integralności w funkcji check_hash(), która po cichu zwraca True, gdy hash_val ma wartość None, przy czym domyślnym typem skrótu jest MD5. Atakujący przeprowadzający atak man-in-the-middle lub kompromitujący rejestr mogą podmienić pakiety, zbiory danych lub archiwa modeli pobierane bez skrótów, umożliwiając dostarczenie złośliwych plików i potencjalne wykonanie kodu.
- CVE-2026-118683Wysokie
MONAI od wersji 1.2.0 przed 1.6.1 zawiera podatność na zdalne wykonanie kodu w ConfigWorkflow.__init__, która przekazuje plik configs/logging.conf pakietu do logging.config.fileConfig, gdzie pola klasy handlera i args są ewaluowane przez eval(). Atakujący może opublikować złośliwy pakiet, którego logging.conf uruchamia dowolny kod Python podczas konstruowania workflow, gdy ofiara załaduje lub uruchomi pakiet.
- CVE-2026-109361Wysokie
MONAI 1.2.0 przed 1.6.1 zawiera podatność na niebezpieczną deserializację w nnUNetV2Runner, która odpakowuje (unpickle) ścieżkę postprocessing_file odczytaną z inference_information.json bez ograniczenia jej do katalogu wyników. Atakujący, którzy mogą zmodyfikować inference_information.json, mogą wskazać złośliwy plik pickle w innym miejscu systemu plików, aby wykonać kod podczas uruchamiania predict_ensemble_postprocessing.
- CVE-2026-109360Wysokie
MONAI 0.4.0 przed 1.6.1 zawiera podatność na zdalne wykonanie kodu, która pozwala atakującym w ścieżce sieciowej na wykonanie kodu poprzez manipulację wagami SENet pobieranymi przez zwykły HTTP. Atakujący mogą podmienić spreparowany plik .pth, który load_state_dict_from_url odpakowuje bez weights_only=True, co prowadzi do wykonania kodu podczas konstruowania modeli SEResNet50 lub innych SENet z pretrained=True.
- CVE-2026-100845Wysokie
MONAI przed wersją 1.6.0 zawiera podatność niebezpiecznej deserializacji w klasie NumpyReader, która bezwarunkowo używa numpy.load z allow_pickle=True podczas ładowania plików .npy i .npz. Atakujący mogą stworzyć złośliwe pliki .npy z ładunkiem pickle, który wykonuje dowolny kod podczas ładowania przez standardowy potok danych MONAI.
- CVE-2026-100844Wysokie
MONAI przed wersją 1.6.0 jest podatny na wstrzykiwanie poleceń systemu operacyjnego w komponencie nnUNetV2Runner. Wartości kontrolowane przez użytkownika z pliku konfiguracyjnego YAML (np. dataset_name_or_id) oraz z argumentów CLI/kwargs są łączone w ciąg poleceń bez cytowania i walidacji, a następnie przekazywane do subprocess z shell=True. Jeśli ofiara załaduje przetworzony złośliwy plik konfiguracyjny, dowolne polecenia są wykonywane z uprawnieniami użytkownika uruchamiającego zadanie.
- CVE-2026-100843Wysokie
MONAI przed wersją 1.6.0 zawiera podatność zdalnego wykonania kodu w funkcji algo_from_pickle() z powodu niebezpiecznej deserializacji pickle.loads() w monai/auto3dseg/utils.py. Atakujący mogą stworzyć złośliwe pliki pickle, które wykonują dowolne polecenia systemowe podczas deserializacji przez podatną funkcję.
- CVE-2026-100842Wysokie
MONAI do wersji 1.6.0 zawiera podatność wstrzykiwania eval w funkcji _get_fake_spatial_shape() w monai/bundle/scripts.py. Funkcja waliduje wyrażenia kształtu za pomocą pomocnika, który przechodzi przez AST i zbiera tylko węzły ast.Name, odrzucając nazwy inne niż 'p' lub 'n', przed przekazaniem stringa do eval(). Wyrażenia zbudowane wyłącznie ze stałych i węzłów atrybutów, indeksów lub wywołań (np. "(1).__class__.__bases__[0].__subclasses__()") nie zawierają węzłów ast.Name i omijają listę dozwolonych. Ponieważ wartość kształtu pochodzi z metadanych pakietu, atakujący, który może wpłynąć na metadane pakietu, może uciec z piaskownicy eval i osiągnąć wykonanie kodu.
- CVE-2026-100841Wysokie
W MONAI 1.6.0, PersistentDataset jawnie odrzuca kombinację track_meta=True z weights_only=True, zmuszając użytkowników, którzy buforują MetaTensory, do uruchamiania torch.load(hashfile, weights_only=False). Pomocnicze funkcje cache w monai/data/utils.py również wywołują pickle.loads na buforowanej zawartości i używają hashlib.md5 do kluczy cache. W rezultacie lokalny użytkownik z dostępem do zapisu do współdzielonego katalogu cache może umieścić złośliwy plik pickle, który zostanie zdeserializowany przy następnym odczycie cache przez innego użytkownika, co prowadzi do wykonania dowolnego kodu w kontekście tego użytkownika.
Oryginalny opis (angielski, źródło NVD)
MONAI before 1.5.2 contains a deserialization of untrusted data vulnerability in the algo_from_pickle function in monai/auto3dseg/utils.py. The function reads a .pkl file and passes its contents to pickle.loads without validating the data source or content. If an application invokes algo_from_pickle on an attacker-supplied pickle file, an object defining __reduce__ is executed during deserialization, resulting in arbitrary code execution in the context of the application.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

