CVE-2026-100840
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
MONAI do wersji 1.6.0 zawiera podatność zdalnego wykonania kodu w silniku konfiguracji pakietów, który rozwiązuje wartości _target_ do dowolnych importowalnych wywołań bez listy dozwolonych i przekazuje wyrażenia $ do Python eval(). Atakujący mogą opublikować złośliwy pakiet z spreparowaną konfiguracją zawierającą dowolny kod, który wykonuje się, gdy ofiara załaduje pakiet za pomocą monai.bundle.load() lub monai.bundle.run().
Ocena ryzyka
Zdalne wykonanie kodu może prowadzić do pełnej kompromitacji systemu i kradzieży danych.
Rekomendacja
Zaktualizuj MONAI do wersji z poprawką. Nie ładuj pakietów z niezaufanych źródeł.
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)
MONAI through 1.6.0 contains a remote code execution vulnerability in the bundle configuration engine that resolves _target_ values to arbitrary importable callables without an allow list and passes $ expressions to Python eval(). Attackers can publish a malicious bundle with crafted configuration containing arbitrary code that executes when a victim loads the bundle using monai.bundle.load() or monai.bundle.run().
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

