CVE-2026-23852
KrytyczneStreszczenie
SiYuan, system zarządzania wiedzą osobistą, w wersjach przed 3.5.4 zawiera podatność na trwały Cross-Site Scripting (XSS), umożliwiającą atakującemu wstrzyknięcie dowolnych atrybutów HTML do atrybutu `icon` bloku za pośrednictwem API `/api/attr/setBlockAttrs`. Ładunek jest później renderowany w funkcji dynamicznych ikon w niesanitowanym kontekście, co prowadzi do trwałego XSS, a w środowisku desktopowym potencjalnie do zdalnego wykonania kodu (RCE). Podatność omija wcześniejszą poprawkę dla problemu #15970. Wersja 3.5.4 zawiera zaktualizowaną poprawkę.
Ocena ryzyka
Atakujący może wykonać złośliwy skrypt w przeglądarce ofiary, co może prowadzić do kradzieży danych, przejęcia sesji, a w wersji desktopowej do zdalnego wykonania kodu na komputerze użytkownika.
Rekomendacja
Zaktualizuj SiYuan do wersji 3.5.4 lub nowszej, aby naprawić podatność.
Inne podatności w SiYuan
Zobacz wszystkie- CVE-2026-93923Wysokie
SiYuan do wersji 3.8.4 nie escapuje atrybutów stylu nagłówków podczas renderowania HTML konspektu i zakładek, co pozwala na przechowywany cross-site scripting. Atakujący może dostarczyć spreparowane notatniki lub wywołać endpointy administracyjne, aby wstrzyknąć złośliwe wartości stylu, które wykonają się w rendererze Electron z pełnym dostępem do systemu.
- CVE-2026-93922Wysokie
SiYuan do wersji 3.8.4 renderuje nazwy notatników jako surowy HTML w oknie wyboru Daily Note bez escapowania, co pozwala na przechowywany cross-site scripting w rendererze Electron. Atakujący może tworzyć notatniki z ładunkami HTML w nazwach, które wykonają JavaScript z dostępem do Node.js po otwarciu okna wyboru, umożliwiając wykonanie poleceń systemowych.
- CVE-2026-93921Średnie
SiYuan w wersjach do 3.8.4 nie egzekwuje kontroli dostępu do publikacji w punkcie końcowym getDynamicIcon, umożliwiając posiadaczom tokenów tylko do odczytu dostęp do metadanych dokumentów. Atakujący mogą wywołać punkt końcowy z type=8 i spreparowaną treścią, aby odczytać tytuły bloków, nazwy, aliasy i ścieżki hierarchiczne zastrzeżonych dokumentów poprzez wstrzyknięcie szablonu.
- CVE-2026-93591Wysokie
SiYuan w wersjach przed 3.8.3 zawiera podatność na wstrzyknięcie SQL w funkcji query2Stmt w graph.go, gdzie wartości tagów są konkatenowane bezpośrednio do literałów SQL bez escapowania pojedynczych cudzysłowów. Czytelnik w trybie publikacji lub anonimowy odwiedzający może wstrzyknąć SQL poprzez inline HTML span tags w endpoincie getGraph, aby wykonać dowolne zapytania na bazie danych z prawem zapisu i wyeksfiltrować prywatne dane z notesów.
- CVE-2026-92986Wysokie
SiYuan przed wersją 3.8.4 renderuje tytuły dokumentów jako HTML w drzewie backlinków bez escapowania znaków znaczników. Atakujący może ustawić złośliwe tytuły przez API zmiany nazwy lub spreparowane notatniki, aby wykonać skrypty w rendererze Electron z dostępem do child_process i wykonaniem poleceń.
- CVE-2026-92985Wysokie
SiYuan w wersjach przed 3.8.4 nie escapuje etykiet zakładek importowanych z plików notatnika podczas renderowania ich w drzewie dock. Atakujący może przygotować złośliwe pliki .sy z nieescapowanym HTML w atrybutach zakładek, co prowadzi do wykonania skryptów w rendererze Electron z dostępem do child_process.
- 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.
Oryginalny opis (angielski, źródło NVD)
SiYuan is a personal knowledge management system. Versions prior to 3.5.4 have a stored Cross-Site Scripting (XSS) vulnerability that allows an attacker to inject arbitrary HTML attributes into the `icon` attribute of a block via the `/api/attr/setBlockAttrs` API. The payload is later rendered in the dynamic icon feature in an unsanitized context, leading to stored XSS and, in the desktop environment, potential remote code execution (RCE). This issue bypasses the previous fix for issue `#15970` (XSS → RCE via dynamic icons). Version 3.5.4 contains an updated fix.

