CVE-2026-55880
WysokieCVSS 7.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 9 - wyżej niż 9% wszystkich znanych CVE
Streszczenie
W OpenReplay w wersji 1.27.0 i wcześniejszych trzy funkcje mutacji (notes.delete, dashboards.update_widget, dashboards.remove_widget) nie sprawdzały własności zasobu, co pozwalało uwierzytelnionym użytkownikom na usuwanie notatek sesji innych użytkowników oraz modyfikowanie widżetów na ich prywatnych pulpitach.
Ocena ryzyka
Ryzyko polega na możliwości nieautoryzowanego usunięcia lub zmodyfikowania prywatnych danych sesji i widżetów przez dowolnego uwierzytelnionego członka, co może prowadzić do utraty danych i naruszenia poufności.
Rekomendacja
Należy natychmiast zaktualizować OpenReplay do wersji 1.28.0 lub nowszej, która zawiera poprawkę dodającą sprawdzanie własności w funkcjach mutacji.
Inne podatności w OpenReplay
Zobacz wszystkie- CVE-2026-55879Krytyczne
OpenReplay w wersjach od 1.24.0 do 1.25.0 zawiera podatność na atak XSS, która pozwala nieuwierzytelnionemu atakującemu na przejęcie konta dashboardu. Atakujący może wysłać złośliwy skrypt poprzez niestandardowe nazwy zdarzeń lub adresy URL stron, które są przechowywane w ClickHouse bez kodowania wyjściowego, a następnie renderowane w dashboardzie, co umożliwia kradzież tokena JWT z localStorage.
- CVE-2026-57230Średnie
Podatność w OpenReplay przed wersją 1.27.0 pozwala uwierzytelnionemu użytkownikowi na odczyt dowolnej tabeli ClickHouse poprzez wstrzyknięcie zapytań SQL w API wyszukiwania sesji i analityki. Atakujący może wykorzystać ślepe wyciekanie danych (boolean-based i time-based) oraz zakłócić działanie wyszukiwania sesji dla wszystkich użytkowników.
- CVE-2026-55881Wysokie
Podatność w OpenReplay umożliwia uwierzytelnionemu użytkownikowi o niskich uprawnieniach odczytanie pierwszych 15 sekund nagrania sesji innego najemcy. Problem wynika z braku weryfikacji przynależności sesji do projektu podczas generowania tymczasowych adresów URL do pobierania danych.
Oryginalny opis (angielski, źródło NVD)
OpenReplay is a self-hosted session replay suite. In 1.27.0 and earlier, three dashboard and note mutation functions ran their SQL without the ownership predicate that their sibling read and edit functions use: notes.delete filtered only on note id and project id, while dashboards.update_widget and dashboards.remove_widget filtered only on dashboard id and widget id, allowing any authenticated member to delete another user's private session notes and remove or rewrite widgets on another user's private dashboards.

