CVE-2026-115922
ŚrednieCVSS 6.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 3 - wyżej niż 3% wszystkich znanych CVE
Streszczenie
Open Neural Network Exchange (ONNX) to otwarty standard interoperacyjności uczenia maszynowego. W wersjach przed 1.22.0 funkcje _unpack_2bit() i _unpack_4bit() zmieniają rozmiar rozpakowanych tablic zgodnie z kontrolowanymi przez atakującego wymiarami TensorProto.dims bez weryfikacji, czy raw_data lub int32_data koduje zadeklarowaną liczbę elementów. Materializacja niezaufanego tensora UINT2, INT2, UINT4, INT4 lub FLOAT4E2M1 przez onnx.numpy_helper.to_array() lub onnx.reference.ReferenceEvaluator może rozszerzyć mały ładunek do nieproporcjonalnie dużej alokacji i wyczerpać pamięć.
Ocena ryzyka
Przetwarzanie złośliwego modelu ONNX może prowadzić do wyczerpania pamięci i odmowy usługi (DoS) w aplikacjach wykorzystujących ONNX. Ryzyko dotyczy systemów ładujących niezaufane modele.
Rekomendacja
Zaktualizuj ONNX do wersji 1.22.0 lub nowszej. Unikaj materializacji niezaufanych tensorów bez wcześniejszej walidacji wymiarów i rozmiaru danych.
Inne podatności w ONNX
Zobacz wszystkie- CVE-2026-115921Średnie
Biblioteka ONNX w wersjach od 1.4.0 do 1.22.0 nieprawidłowo waliduje wymagany atrybut num_scan_inputs w funkcjach wnioskowania kształtów ScanInferenceFunction. Brakujący atrybut powoduje dereferencję wskaźnika null, a wartość ujemna jest konwertowana do size_t i może prowadzić do nadmiernej alokacji pamięci. Niezaufany model może przerwać lub zakłócić wnioskowanie kształtów, w tym model z wartością ujemną, który przechodzi walidację onnx.checker.check_model().
- CVE-2026-115920Średnie
Biblioteka ONNX w wersjach od 1.2.1 do 1.22.0 podczas wnioskowania kształtów ConvTranspose przetwarza tensor wag o mniej niż trzech wymiarach bez atrybutu kernel_shape, tworząc pusty effective_kernel_shape i indeksując go dla wymiarów przestrzennych. Niezaufany model przechodzący walidację onnx.checker.check_model() może spowodować awarię onnx.shape_inference.infer_shapes(), prowadząc do odmowy usługi.
- CVE-2026-115919Średnie
Biblioteka ONNX przed wersją 1.22.0 w funkcji RNNShapeInference_opset1_to_6() przetwarza zniekształcone węzły RNN i LSTM z opsetów 1-6 oraz GRU z opsetów 3-6 bez weryfikacji, że pierwszy wejściowy tensor ma rangę trzy. Funkcja uzyskuje dostęp do dim(0) i dim(1) na zbyt małym kształcie protobuf, co może odczytać poza zamierzonym polem i zakończyć aplikację podczas przetwarzania niezaufanego modelu przez onnx.shape_inference.infer_shapes().
- CVE-2026-49114Wysokie
ONNX przed wersją 1.21.0 zawiera podatność w funkcji 'save_external_data', która buduje ścieżkę pliku danych zewnętrznych i otwiera go do zapisu bez zabezpieczeń O_NOFOLLOW/O_EXCL, po nieatomowym sprawdzeniu 'os.path.isfile()'. Lokalny atakujący może podmienić plik na dowiązanie symboliczne, co pozwala na dopisanie danych do dowolnego pliku, do którego ofiara ma prawo zapisu.
- CVE-2026-63632Niskie
Podatność w bibliotece ONNX od wersji 1.3.0 do 1.22.0 pozwala na odczyt poza zakresem pamięci w funkcji Gemm_7_6::adapt_gemm_7_6() podczas konwersji wersji opset 7 do 6, gdy tensor wejściowy ma mniej niż dwie wymiary. Może to spowodować awarię procesu.
- CVE-2026-44512Średnie
Podatność w bibliotece ONNX (wersje od 1.9.0 do 1.22.0) pozwala na wywołanie dereferencji pustego wskaźnika w funkcji Upsample_6_7::adapt_upsample_6_7() podczas przetwarzania złośliwego modelu z węzłem Upsample posiadającym zero wejść. Prowadzi to do nieodwracalnej odmowy usługi (DoS).
- CVE-2026-27489Wysokie
W bibliotece ONNX przed wersją 1.21.0 wykryto podatność na przejście ścieżki przez dowiązania symboliczne (symlink). Umożliwia ona odczyt dowolnych plików poza katalogiem modelu lub katalogiem wskazanym przez użytkownika.
- CVE-2026-28500Wysokie
W bibliotece ONNX w wersjach do 1.20.1 wykryto obejście mechanizmu bezpieczeństwa w funkcji onnx.hub.load(). Użycie parametru silent=True całkowicie wycisza ostrzeżenia o ładowaniu modeli z nieoficjalnych źródeł, umożliwiając ataki typu łańcuch dostaw bez interakcji użytkownika.
Oryginalny opis (angielski, źródło NVD)
Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. Prior to 1.22.0, _unpack_2bit() and _unpack_4bit() resize unpacked arrays according to attacker-controlled TensorProto.dims without verifying that raw_data or int32_data encodes the declared number of elements. Materializing an untrusted UINT2, INT2, UINT4, INT4, or FLOAT4E2M1 tensor through onnx.numpy_helper.to_array() or onnx.reference.ReferenceEvaluator can therefore expand a small packed payload into a disproportionately large allocation and exhaust memory. This issue is fixed in version 1.22.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

