CVE-2026-100841
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 2 - wyżej niż 2% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Lokalny atakujący może wykonać dowolny kod w kontekście innego użytkownika, co może prowadzić do kradzieży danych lub eskalacji uprawnień.
Rekomendacja
Zaktualizuj MONAI do wersji z poprawką, gdy będzie dostępna. Ogranicz uprawnienia do katalogów cache i stosuj bezpieczne uprawnienia.
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-100846Wysokie
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.
- 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.
Oryginalny opis (angielski, źródło NVD)
In MONAI 1.6.0, PersistentDataset (monai/data/dataset.py) explicitly rejects the combination track_meta=True with weights_only=True, forcing users who cache MetaTensors (the default tensor type in MONAI >= 1.0) to run torch.load(hashfile, weights_only=False). Related cache helpers in monai/data/utils.py also call pickle.loads on cached content and derive cache keys with hashlib.md5. As a result, a local user with write access to a shared or world-writable cache_dir (e.g. /tmp/monai_cache, HPC scratch, ~/.cache/monai) can place a malicious pickle file that is deserialized the next time another user's MONAI pipeline reads the cache, resulting in arbitrary code execution in that user's context. All released versions of the monai pip package are affected; no patched version is available as of the advisory.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

