CVE-2026-107223
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 23 - wyżej niż 23% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko polega na możliwości przeciążenia systemu przez złośliwy plik Excel, co może prowadzić do niedostępności aplikacji.
Rekomendacja
Zaleca się ograniczenie zaufania do plików Excel oraz monitorowanie użycia zasobów; brak dostępnej wersji z poprawką.
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-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.
- CVE-2026-107215Wysokie
Biblioteka Excelize w wersjach od 2.3.1 do 2.11.0 ufa rozmiarowi strumienia z wpisu katalogowego CFB przed jego walidacją. Złośliwy plik OLE może zadeklarować ujemny lub ogromny rozmiar strumienia EncryptionInfo lub EncryptedPackage, co prowadzi do paniki lub wyczerpania pamięci procesu.
Oryginalny opis (angielski, źródło NVD)
Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.1.0 to 2.11.0, flatCols expands file-loaded column ranges without validating Min and Max against the worksheet column limit. SetColWidth reaches flatCols, which expands xlsxCol.Min through xlsxCol.Max without enforcing MaxColumns. When a crafted worksheet supplies an oversized col max attribute and the application invokes a column mutator, flatCols performs a deep copy and append for every attacker-selected column number, allowing an attacker to consume excessive CPU and memory or trigger OOM. No fixed version is available as of this review.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

