CVE-2026-66922
ŚrednieCVSS 5.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
Pivotick używa zwykłych obiektów JavaScript jako tablic przeglądowych indeksowanych przez identyfikatory węzłów pochodzące od użytkownika. Identyfikatory pasujące do właściwości dziedziczonych z Object.prototype (np. constructor, __proto__) mogą być błędnie interpretowane, co prowadzi do pomijania węzłów, błędnych hierarchii, omijania wykrywania cykli lub wyjątków powodujących odmowę usługi.
Ocena ryzyka
Atakujący może zakłócić integralność wizualizacji grafów i analiz, a także spowodować odmowę usługi po stronie klienta.
Rekomendacja
Zaktualizuj Pivotick do wersji zawierającej poprawkę, która zastępuje obiekty instancjami Map i ignoruje nieprawidłowe krawędzie.
Inne podatności w Pivotick
Zobacz wszystkie- CVE-2026-67174Krytyczne
Pivotick zawiera podatność na ataki XSS oparte na DOM w funkcjach rozpoznawania elementów UI i renderowania ikon. Funkcja tryResolveHTMLElement traktuje dowolny rozpoznany ciąg jako znacznik HTML, a createIcon wstawia ikony SVG bez sanityzacji. Nieuwierzytelniony atakujący może dostarczyć spreparowany graf, wartość właściwości lub ikonę SVG, co prowadzi do wykonania JavaScript w przeglądarce ofiary.
- CVE-2026-67173Średnie
Pivotick nie sprawdza schematu URI w wartościach imagePath węzłów pochodzących z danych grafu, co pozwala atakującemu na ustawienie złośliwego URI. Podczas renderowania grafu przeglądarka ofiary może wysłać niezamierzone żądanie lub wywołać obsługę specyficzną dla schematu.
- CVE-2026-66921Średnie
Renderer odwołań do węzłów Markdown w Pivotick nie koduje HTML wartości nodeName pochodzącej od atakującego, co pozwala na wstrzyknięcie złośliwych atrybutów lub elementów HTML. Może to prowadzić do wykonania dowolnego JavaScript w przeglądarce ofiary.
- CVE-2026-66920Wysokie
Pivotick zawiera podatność niekontrolowanej rekurencji podczas przetwarzania danych grafu i węzłów. Algorytmy grafu rekurencyjnie przechodzą krawędzie, a przeglądarka JSON rekurencyjnie przetwarza każdy poziom struktury węzła. Specjalnie spreparowany graf z długą ścieżką, głęboko zagnieżdżonymi właściwościami lub cyklicznymi referencjami może wyczerpać stos JavaScript, powodując awarię strony lub przeglądarki.
- CVE-2026-66919Średnie
Pivotick zawiera podatność na cross-site scripting w modalach inspekcji i edycji węzłów. Etykiety i opisy węzłów pochodzące z danych grafu są interpolowane bezpośrednio do HTML, co pozwala atakującemu na wstrzyknięcie złośliwego JavaScript.
- CVE-2026-66918Wysokie
Pivotick nie oczyszcza atakującego kodu SVG dostarczonego przez właściwość style.svgIcon przed wstawieniem go do dokumentu. Podczas renderowania węzła grafu, kod przypisuje znacznik SVG bezpośrednio do innerHTML, co pozwala na wykonanie złośliwych handlerów zdarzeń, np. <image> z atrybutem onerror. Atakujący może wykonać dowolny JavaScript w kontekście aplikacji.
- CVE-2026-66825Średnie
Pivotick zawiera podatność XSS w komponencie sidebar property-list. Wartości właściwości linkopodobnych (url, uri, href, link, website, homepage) były renderowane jako hiperłącza bez walidacji schematu URL. Atakujący może dostarczyć złośliwą wartość z schematem javascript:, w tym z białymi znakami lub znakami kontrolnymi. Kliknięcie linku może wykonać JavaScript w kontekście aplikacji. Podatność została naprawiona przez normalizację wartości i blokowanie niebezpiecznych schematów.
Oryginalny opis (angielski, źródło NVD)
Pivotick used plain JavaScript objects as lookup tables indexed by caller-controlled graph node identifiers in its tree-layout and cycle-detection components. Node identifiers matching properties inherited from Object.prototype, such as constructor, toString, or __proto__, were not handled as ordinary identifiers. These values could be interpreted as existing inherited properties, resolve to values of an unexpected type, or—in the case of __proto__ assignments—modify the prototype of an internal lookup object. An attacker who can supply graph data containing crafted node identifiers could consequently cause nodes or edges to be silently omitted, produce incorrect hierarchy levels, bypass or corrupt cycle-detection results, or trigger an exception that interrupts graph processing and rendering. This affects the integrity of graph visualisations and analytics and may cause a client-side denial-of-service condition. The affected code also failed to safely handle edges whose source node was absent from the supplied node set. Furthermore, calculating the maximum tree depth by spreading all level values into Math.max() could exceed the JavaScript function-argument limit when processing a sufficiently large graph, resulting in an exception and denial of service. The patch replaces identifier-keyed plain objects with Map instances, ignores invalid edges during tree construction, and calculates the maximum depth iteratively.

