CVE-2026-77438
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 - wyżej niż 15% wszystkich znanych CVE
Streszczenie
Trilium to open-source'owa hierarchiczna aplikacja do notatek. W wersjach do 0.103.0 włącznie, publiczny endpoint wyszukiwania udostępnionych notatek nie egzekwuje kontroli shareCredentials i shareHiddenFromTree, co pozwala nieuwierzytelnionemu odwiedzającemu czytać tytuły, ścieżki drzewa i treść chronionych udostępnionych notatek. Endpoint autoryzuje tylko notatkę nadrzędną, a następnie przeszukuje cały opublikowany poddrzewo, zwracając tytuły, identyfikatory udostępnienia i ścieżki bez ponownego sprawdzania, czy dana notatka wymaga hasła lub jest ukryta.
Ocena ryzyka
Atakujący może wykorzystać endpoint jako wyrocznię boolowską do potwierdzania podciągów i odzyskać pełną treść notatek chronionych hasłem, co narusza poufność danych.
Rekomendacja
Zaleca się aktualizację do wersji 0.104.0, która zawiera poprawkę egzekwującą kontrolę dostępu na poziomie pojedynczych notatek.
Inne podatności w Trilium
Zobacz wszystkie- CVE-2026-53579Krytyczne
Trilium to aplikacja do hierarchicznych notatek o otwartym kodzie źródłowym. W wersjach do 0.103.0 włącznie, domyślnie włączony filtr "Safe import" sanityzuje HTML tylko dla notatek tekstowych i pomija typ notatki książki (book note), której treść jest przechowywana bez sanityzacji i później renderowana jako HTML, co pozwala na osadzenie złośliwego ładunku w archiwum importowanym, który wykonuje się jako skrypt. Treść notatki książki jest przetwarzana przez tę samą ścieżkę renderowania co notatki tekstowe i wstrzykiwana do strony metodą jQuery html, gdy notatka jest wyświetlana jako karta podglądu w widoku siatki, więc złośliwa notatka przetrwa Safe import i uruchomi się po otwarciu zawierającej ją notatki. W kliencie desktopowym renderer Electron działa z włączoną integracją Node, więc wstrzyknięty JavaScript eskaluje z cross-site scripting do pełnego zdalnego wykonania kodu na maszynie ofiary. Problem naprawiono w wersji 0.104.0.
- CVE-2026-53578Krytyczne
Trilium to aplikacja do hierarchicznych notatek o otwartym kodzie źródłowym. W wersjach do 0.103.0 włącznie, domyślnie włączony filtr "Safe import" sanityzuje HTML tylko dla notatek tekstowych i pomija typ notatki mindMap, której zawartość JSON jest przechowywana bez sanityzacji, co pozwala na osadzenie ładunku renderującego dowolny HTML. Węzeł mapy myśli może zawierać właściwość dangerouslySetInnerHTML, którą biblioteka Mind Elixir przypisuje bezpośrednio do innerHTML węzła, więc złośliwa notatka przetrwa Safe import i wykona skrypt po otwarciu zaimportowanej mapy myśli. W kliencie desktopowym renderer Electron działa z włączoną integracją Node, więc wstrzyknięty JavaScript eskaluje z cross-site scripting do pełnego zdalnego wykonania kodu na maszynie ofiary. Problem naprawiono w wersji 0.104.0.
- CVE-2026-48996Krytyczne
Trilium to aplikacja do hierarchicznych notatek o otwartym kodzie źródłowym. W wersjach do 0.103.0 włącznie, domyślnie włączony filtr "Safe import" nie sanityzuje tytułów notatek, a widok GeoMap interpoluje tytuł notatki znacznika do surowego HTML renderowanego jako innerHTML, co pozwala na wstrzyknięcie skryptu przez archiwum importowane, który uruchamia się podczas wyświetlania mapy. Ponieważ Safe import neutralizuje skrypty, ale nigdy nie escapuje tytułów, notatka z tytułem zawierającym ładunek obsługi zdarzeń HTML przetrwa import i wykona się po otwarciu GeoMap renderującego jej znacznik. W kliencie desktopowym renderer Electron działa z włączoną integracją Node, więc wstrzyknięty JavaScript eskaluje z cross-site scripting do pełnego zdalnego wykonania kodu na maszynie ofiary. Problem naprawiono w wersji 0.104.0.
- CVE-2026-53580Wysokie
Trilium, przed wersją 0.104.0, ma podatność w automatycznym pobieraniu obrazów. Funkcja akceptuje adresy file:// w tagach img notatek i odczytuje wskazany plik lokalny bez walidacji ścieżki, co pozwala uwierzytelnionemu użytkownikowi ujawnić dowolne pliki czytelne dla procesu Trilium. Dodatkowo, wskazanie nieograniczonego źródła, takiego jak /dev/zero, powoduje niekontrolowaną alokację pamięci i awarię serwera. Problem naprawiono w wersji 0.104.0.
- CVE-2026-47727Wysokie
Trilium, przed wersją 0.104.0, ma podatność w domyślnie włączonym filtrze "Safe import". Filtr nie neutralizuje relacji shareTemplate, ponieważ nie jest ona oznaczona jako niebezpieczna, co pozwala na zaimportowanie archiwum zawierającego szablon po stronie serwera prowadzący do zdalnego wykonania kodu. Gdy ofiara publikuje zaimportowaną notatkę, publiczny renderer udostępniania przekazuje surowe bajty powiązanej notatki EJS do ejs.render, co kompiluje je w procesie Node.js. Problem naprawiono w wersji 0.104.0.
Oryginalny opis (angielski, źródło NVD)
Trilium is an open-source hierarchical note-taking application. In versions up to and including 0.103.0, the public share-search endpoint does not enforce the per-note shareCredentials and shareHiddenFromTree controls, allowing an unauthenticated visitor to read the titles, tree paths, and content of protected shared notes. The endpoint authorizes only the ancestor note supplied in the request and then runs a full-text search across the entire published subtree, returning each matching note's title, share identifier, and hierarchical path without re-checking whether that individual note requires a share password or is hidden from the navigation tree. Because the search matches note content, an attacker can enumerate protected notes and use the endpoint as a boolean oracle that confirms arbitrary substrings, recovering the full contents of notes that should be gated behind a password. This issue is fixed in version 0.104.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

