CVE-2026-65605
KrytyczneCVSS 9.6Streszczenie
SiYuan przed wersją v3.7.2 zawiera podatność na przechowywane cross-site scripting w renderowaniu komórek widoku atrybutów (bazy danych). Wartość kolumny szablonu jest renderowana jako HTML przez text/template bez auto-eskejpowania, a EscapeHTML jest stosowany tylko gdy HasUnclosedHtmlTag zwraca true; ponieważ zbalansowane samozamykające się tagi, takie jak <img>, są pomijane przez to sprawdzenie, ładunek taki jak <img src=x onerror=...> jest przechowywany bez eskejpowania i później wstawiany do strony przez innerHTML, wykonując się podczas przeglądania bazy danych. Ponieważ renderer desktopowy działa z włączonym nodeIntegration, wstrzyknięty skrypt może uzyskać dostęp do require i eskalować do dowolnego wykonania poleceń.
Ocena ryzyka
Ryzyko obejmuje możliwość zdalnego wykonania kodu na stacji roboczej użytkownika podczas przeglądania bazy danych, co może prowadzić do pełnego przejęcia systemu.
Rekomendacja
Zaleca się natychmiastową aktualizację SiYuan do wersji v3.7.2 lub nowszej.
Inne podatności w SiYuan
Zobacz wszystkie- CVE-2026-45371Wysokie
SiYuan to system zarządzania wiedzą, który przed wersją 3.7.0 miał luki w zabezpieczeniach związane z 8 nieograniczonymi API, które mogły modyfikować konfigurację i indeks SQL. Użytkownicy z odpowiednim tokenem JWT mogli uzyskać dostęp do tych API, co prowadziło do nieautoryzowanych zmian w stanie serwera.
- CVE-2026-41894Wysokie
SiYuan to system zarządzania wiedzą osobistą typu open-source. Przed wersją 3.6.5 poprawka dla CVE-2026-30869 dodała jedynie listę blokowanych ścieżek, ale nie rozwiązała źródła problemu – zbędnego wywołania url.PathUnescape() w funkcji serveExport(). Uwierzytelniony atakujący może użyć podwójnego kodowania URL (%252e%252e), aby przechodzić między katalogami i czytać dowolne pliki obszaru roboczego, w tym pełną bazę danych SQLite (siyuan.db), logi jądra i wszystkie dokumenty użytkowników.
- CVE-2026-84803Krytyczne
SiYuan przed wersją 3.8.2 zawiera podatność na trwały cross-site scripting (XSS) w serwowaniu zasobów z powodu niekompletnej listy blokowanych rozszerzeń, która pomija typy plików zdolne do wykonywania skryptów. Atakujący mogą przesyłać pliki z rozszerzeniami takimi jak .xht, .ehtml, .xsl, .xbl lub .rdf, które są interpretowane jako wykonywalne typy mediów, i wykonywać JavaScript w celu kradzieży tokenów API i naruszenia bezpieczeństwa obszarów roboczych.
- CVE-2026-77086Krytyczne
SiYuan przed wersją v3.7.4 nie waliduje parametru packageName w punktach końcowych instalacji i odinstalowania Bazaar, co pozwala uwierzytelnionym administratorom na przeprowadzenie ataku typu path traversal. Atakujący z dostępem administratorskim mogą zapisywać dowolne pliki w dowolnej lokalizacji lub rekurencyjnie usuwać katalogi, podając spreparowane wartości packageName.
- CVE-2026-74800Krytyczne
SiYuan przed wersją v3.7.4 nie ustawia nagłówków Content-Disposition i X-Content-Type-Options podczas serwowania dowolnych plików, co umożliwia ataki typu stored cross-site scripting. Uwierzytelnieni atakujący mogą przesłać pliki HTML jako zasoby i wykonać skrypty z pełnym dostępem do API jądra, gdy właściciel obszaru roboczego otworzy link do zasobu.
- CVE-2026-74799Krytyczne
SiYuan przed wersją 3.7.4 rejestruje punkty końcowe debugowania Go net/http/pprof, w tym zrzuty sterty i gorutyn, bez uwierzytelniania, gdy flaga --mode nie jest ustawiona dokładnie na prod. Atakujący mogą uzyskać dostęp do /debug/pprof/heap i powiązanych punktów końcowych, aby wyodrębnić tajemnice z pamięci, w tym AccessAuthCode i klucze API dostawcy AI.
- CVE-2026-73056Krytyczne
Jądro SiYuan przed wersją 3.7.4 zawiera podatność na nieograniczone próby uwierzytelnienia w middleware CheckAuth(). Middleware akceptuje token API (Conf.Api.Token) przez nagłówek Authorization (Token/Bearer) lub parametr ?token=, a żadna z tych ścieżek nie jest chroniona mechanizmem CAPTCHA/blokady. Zdalny atakujący bez uwierzytelnienia może przeprowadzać nieograniczone automatyczne zgadywanie tokena API, szczególnie gdy skonfigurowano krótki lub słaby token, a po sukcesie uzyskuje pełny dostęp roli Administratora, umożliwiający dowolne operacje na plikach i zapytania SQL.
- CVE-2026-73053Krytyczne
SiYuan przed wersją v3.7.4 zawiera podatność na cross-site scripting w funkcji unicode2Emoji, która nie sanityzuje danych wyjściowych gałęzi codepoint. Atakujący mogą tworzyć ikony dokumentów z zakodowanym szesnastkowo znacznikiem, który wykonuje się w rendererze z włączoną integracją Node, umożliwiając wykonanie dowolnego kodu na systemie.
- CVE-2026-73052Krytyczne
SiYuan przed wersją v3.7.4 przechowuje nazwy pól widoku atrybutów bez kodowania HTML i interpoluje je bezpośrednio do elementów option przez innerHTML w menu sortowania. Atakujący mogą wstrzyknąć znaczniki, zmieniając nazwę pola bazy danych, aby wykonać dowolny JavaScript, gdy użytkownik otworzy menu sortowania, a włączona integracja Node w kliencie desktop umożliwia wykonanie kodu.
- CVE-2026-73050Krytyczne
SiYuan przed wersją v3.7.4 nie waliduje ani nie koduje pola koloru w opcjach select widoku atrybutów, co pozwala na przechowywany cross-site scripting przez osiem niekodowanych miejsc renderowania. Atakujący mogą wstrzyknąć atrybuty obsługi zdarzeń, umieszczając cudzysłowy w wartości koloru, co wykonuje dowolny JavaScript podczas przeglądania baz danych zawierających złośliwe pole select.
Oryginalny opis (angielski, źródło NVD)
SiYuan before v3.7.2 contains a stored cross-site scripting vulnerability in Attribute View (database) cell rendering. A Template column value is rendered as HTML via text/template without auto-escaping, and EscapeHTML is only applied when HasUnclosedHtmlTag returns true; because balanced self-closing tags such as <img> are skipped by that check, a payload like <img src=x onerror=...> is stored unescaped and later inserted into the page via innerHTML, executing when the database is viewed. Because the desktop renderer runs with nodeIntegration enabled, the injected script can reach require and escalate to arbitrary command execution.

