CVE-2026-41894
WysokieStreszczenie
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.
Ocena ryzyka
Podatność umożliwia uwierzytelnionemu atakującemu odczyt wrażliwych danych, w tym całej bazy danych, co może prowadzić do naruszenia poufności informacji.
Rekomendacja
Zaleca się natychmiastową aktualizację SiYuan do wersji 3.6.5 lub nowszej, która zawiera pełną poprawkę.
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-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.
- CVE-2026-73046Krytyczne
SiYuan przed wersją v3.7.4 nieprawidłowo ogranicza nadmierne próby uwierzytelnienia w middleware CheckAuth(). Gałąź HTTP Basic Authentication, która chroni prawie całą powierzchnię /api/*, akceptuje kod dostępu do obszaru roboczego jako hasło Basic Auth, ale nie konsultuje bramki CAPTCHA/blokady ani nie zwiększa licznika nieudanych prób używanych przez ścieżkę logowania cookie/sesja. Pozwala to nieuwierzytelnionym zdalnym atakującym na brute-force kodu dostępu administratora z nieograniczoną liczbą automatycznych żądań i uzyskanie pełnego dostępu RoleAdministrator do jądra. Dodatkowo kod dostępu jest porównywany w czasie niestałym.
- CVE-2026-73044Krytyczne
SiYuan przed wersją v3.7.4 nie waliduje ani nie koduje wartości szerokości kolumn tabeli, co pozwala na przechowywany cross-site scripting w atrybutach style. Atakujący mogą wstrzyknąć złośliwe ładunki przez API setAttrViewColWidth, które wychodzą poza atrybuty style i wstrzykują obsługę zdarzeń na każdej komórce tabeli, wykonując dowolny kod w rendererze Electron z włączoną integracją Node.
Oryginalny opis (angielski, źródło NVD)
SiYuan is an open-source personal knowledge management system. Prior to 3.6.5, the fix for CVE-2026-30869 only added a denylist check (IsSensitivePath) but did not address the root cause — a redundant url.PathUnescape() call in serveExport(). An authenticated attacker can use double URL encoding (%252e%252e) to traverse directories and read arbitrary workspace files including the full SQLite database (siyuan.db), kernel log, and all user documents. This vulnerability is fixed in 3.6.5.

