CVE-2026-118683
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 42 - wyżej niż 42% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Załadowanie złośliwego pakietu MONAI może doprowadzić do wykonania dowolnego kodu Python z uprawnieniami użytkownika uruchamiającego workflow. Ryzyko dotyczy środowisk ML/AI, w których używane są pakiety pochodzące z niezaufanych źródeł.
Rekomendacja
Zaktualizuj MONAI do wersji 1.6.1 lub nowszej. Ładuj wyłącznie pakiety z zaufanych źródeł i weryfikuj ich integralność przed uruchomieniem.
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-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.
- 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 from 1.2.0 before 1.6.1 contains a remote code execution vulnerability in ConfigWorkflow.__init__, which passes a bundle's configs/logging.conf to logging.config.fileConfig that eval()s handler class and args fields. Attackers can publish a malicious bundle whose logging.conf runs arbitrary Python at workflow construction when a victim loads or runs the bundle.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

