CVE-2026-107213
ŚrednieCVSS 5.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 20 - wyżej niż 20% wszystkich znanych CVE
Streszczenie
Biblioteka Excelize w wersjach od 2.9.0 do 2.11.0 w funkcji GetSlicers sprawdza ExtLst, ale dereferencjonuje ws.Drawing bez sprawdzenia, czy opcjonalny element drawing istnieje. Złośliwy arkusz z elementem extLst bez drawing powoduje dereferencję wskaźnika nil i panikę.
Ocena ryzyka
Atakujący może dostarczyć spreparowany plik Excel, który spowoduje awarię aplikacji wywołującej GetSlicers. Może to prowadzić do odmowy usługi (DoS).
Rekomendacja
Brak dostępnej wersji naprawionej. Należy ograniczyć przetwarzanie niezaufanych plików Excel i unikać wywoływania GetSlicers na niezaufanych danych.
Inne podatności w Excelize
Zobacz wszystkie- CVE-2026-107225Średnie
Excelize to biblioteka języka Go do odczytu i zapisu arkuszy kalkulacyjnych Microsoft Excel. W wersjach od 2.8.0 do 2.11.0 predykaty ekstrakcji wypełnienia, obramowania i czcionki w GetStyle sprawdzają tylko górne granice dla indeksów tabeli stylów kontrolowanych przez atakującego. File.GetStyle opiera się na predykatach extractStyleCondFuncs, które pozwalają ujemnym wartościom FillID, BorderID i FontID dotrzeć do indeksowania slice. Gdy spreparowany plik styles.xml dostarczy ujemny fillId, borderId lub fontId, a aplikacja odczyta styl, ujemny identyfikator przechodzi predykat sprawdzający tylko górną granicę i staje się ujemnym indeksem slice, co pozwala atakującemu wywołać panic podczas odczytu stylu komórki. Brak dostępnej poprawionej wersji na dzień przeglądu.
- CVE-2026-107224Średnie
Excelize to biblioteka języka Go do odczytu i zapisu arkuszy kalkulacyjnych Microsoft Excel. W wersjach od 2.1.0 do 2.11.0 rozmiar nieskompresowany Zip64 z ustawionym wysokim bitem jest konwertowany z uint64 na ujemny int64 przed sprawdzeniem limitu rozmiaru i alokacją. ReadZipReader pobiera UncompressedSize64 przez FileInfo.Size i przekazuje zawiniętą ujemną wartość do readFile. Gdy spreparowany wpis Zip64 deklaruje rozmiar nieskompresowany od 2^63 do 2^64-1, a skoroszyt jest otwierany, ujemny rozmiar omija limity rozpakowywania i trafia do make jako ujemna pojemność, co pozwala atakującemu wywołać panic podczas otwierania skoroszytu. Brak dostępnej poprawionej wersji na dzień przeglądu.
- CVE-2026-107223Wysokie
Podatność w bibliotece Excelize (Go) od wersji 2.1.0 do 2.11.0. Funkcja flatCols rozszerza zakresy kolumn bez walidacji Min i Max względem limitu kolumn arkusza, co pozwala atakującemu na nadmierne zużycie CPU i pamięci lub wywołanie OOM.
- CVE-2026-107222Średnie
Excelize to biblioteka języka Go do odczytu i zapisu arkuszy kalkulacyjnych Microsoft Excel. W wersjach od 2.7.0 do 2.11.0 ekstrakcja formatowania warunkowego indeksuje wymagane slice potomne lub dereferencjonuje opcjonalne dziecko colorScale bez walidacji struktury reguły. GetConditionalFormats osiąga extractCondFmtCellIs i indeksuje ColorScale.Cfvo, DataBar.Cfvo oraz DataBar.Color bez pełnych sprawdzeń strukturalnych. Gdy spreparowany arkusz dostarczy regułę cellIs, dataBar lub colorScale bez oczekiwanych dzieci, a aplikacja wywoła GetConditionalFormats, brakujące dane formuły, koloru, obiektu wartości lub colorScale trafiają do indeksu poza zakresem lub dereferencji nil, co pozwala atakującemu wywołać panic i zakończyć niechroniony proces. Brak dostępnej poprawionej wersji na dzień przeglądu.
- CVE-2026-107221Średnie
Excelize to biblioteka języka Go do odczytu i zapisu arkuszy kalkulacyjnych Microsoft Excel. W wersjach od 2.0.0 do 2.11.0 funkcja checkRow ustala rozmiar docelowego slice komórek na podstawie ostatniej komórki w kolejności dokumentu XML, a następnie rozrzuca każdą komórkę według jej jawnego odwołania do kolumny. GetCellValue osiąga workSheetReader i checkRow, gdzie targetList jest zbyt krótka dla wcześniejszej komórki poza kolejnością. Gdy spreparowany wiersz umieszcza komórkę o wyższym numerze kolumny przed końcową komórką o niższym numerze, a API arkusza niebędące strumieniowym odczytuje arkusz, indeks kolumny wcześniejszej komórki przekracza długość slice wynikającą z końcowej komórki, co pozwala atakującemu wywołać nieodwracalny panic i zakończyć proces. Brak dostępnej poprawionej wersji na dzień przeglądu.
- CVE-2026-107220Średnie
Excelize to biblioteka języka Go do odczytu i zapisu arkuszy kalkulacyjnych Microsoft Excel. W wersjach od 2.7.1 do 2.11.0 mergeCellsParser pozostawia pusty prostokąt dla pustego odwołania mergeCell ref, a następnie przekazuje ten pusty slice do cellInRange bez sprawdzenia długości. GetCellValue osiąga mergeCellsParser, który przekazuje pusty prostokąt pochodzący z atrybutu mergeCell ref do cellInRange. Gdy spreparowany arkusz zawiera puste odwołanie mergeCell ref, a API komórek niebędące strumieniowym odczytuje arkusz, cellInRange indeksuje cztery pozycje w pustym slice, co pozwala atakującemu wywołać panic przy pierwszej operacji na dotkniętej komórce. Brak dostępnej poprawionej wersji na dzień przeglądu.
- CVE-2026-107219Wysokie
Podatność w bibliotece Excelize (Go) od wersji 2.3.1 do 2.11.0. Szyfrowanie agile akceptuje sterowaną przez atakującego wartość spinCount i wykonuje nieograniczoną liczbę iteracji wyprowadzania klucza, co pozwala na zajęcie rdzenia CPU na czas wybrany przez atakującego.
- CVE-2026-107218Średnie
Excelize to biblioteka języka Go do odczytu i zapisu arkuszy kalkulacyjnych Microsoft Excel. W wersjach od 2.10.1 do 2.11.0 funkcja RIGHT waliduje żądaną długość za pomocą liczby jednostek kodu UTF-16, ale tnie tablicę run za pomocą liczby punktów kodu Unicode. RIGHT osiąga leftRight przez CalcCellValue, gdzie countUTF16String waliduje jedną jednostkę, a utf8.RuneCountInString dostarcza indeks slice w innej. Gdy RIGHT przetwarza tekst z płaszczyzny dodatkowej z żądaną liczbą znaków między liczbą run a liczbą jednostek kodu UTF-16, niespójne jednostki powodują ujemny indeks slice run, co pozwala atakującemu wywołać panic podczas oceny formuły. Brak dostępnej poprawionej wersji na dzień przeglądu.
- CVE-2026-107217Wysokie
Podatność w bibliotece Excelize (Go) od wersji 2.0.0 do 2.11.0 (oraz 1.1.0-1.4.1). Funkcja ColumnNameToNumber nie wykrywa przepełnienia przy konwersji nazw kolumn, co może prowadzić do paniki i zakończenia procesu przez złośliwy plik.
- CVE-2026-107216Wysokie
Podatność w bibliotece Excelize (Go) od wersji 2.8.1 do 2.11.0. Funkcja ANCHORARRAY rekurencyjnie wywołuje CalcCellValue, tworząc nowy kontekst obliczeń i omijając kontrolę cykli, co może prowadzić do przepełnienia stosu Go i przerwania procesu.
Oryginalny opis (angielski, źródło NVD)
Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.9.0 to 2.11.0, GetSlicers checks for ExtLst but dereferences ws.Drawing without checking whether the independently optional drawing element exists. File.GetSlicers reads ws.Drawing.RID after seeing a worksheet extLst element even when the independently optional worksheet drawing element is absent. When a crafted worksheet contains an extLst element without a drawing element and the application calls GetSlicers, the nil ws.Drawing pointer is dereferenced while resolving the drawing relationship, allowing an attacker to panic and terminate an unprotected process. No fixed version is available as of this review.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

