CVE-2026-82649
WysokieCVSS 7.0Streszczenie
Instalator SiYuan dla Windows przed wersją 3.8.1 (dotknięte wersje >= 2.0.14) zawiera podatność na niekontrolowaną ścieżkę wyszukiwania w instalatorze NSIS, który wywołuje systemowe pliki wykonywalne, takie jak TASKKILL, po nazwie, a nie po ścieżce bezwzględnej. Ponieważ NSIS nsExec::Exec rozwiązuje te wywołania, używając ścieżki wyszukiwania obejmującej katalog startowy instalatora przed System32, atakujący, który umieści złośliwy plik wykonywalny (np. zmieniony TASKKILL.exe) w tym katalogu, może spowodować jego wykonanie podczas uruchamiania instalatora. Te wywołania występują w hooku preInit electron-buildera przed wyświetleniem strony licencji, a przy instalacji dla wszystkich użytkowników (z podniesionymi uprawnieniami) podłożony plik wykonuje się z podniesionym tokenem, co prowadzi do lokalnej eskalacji uprawnień.
Ocena ryzyka
Ryzyko lokalnej eskalacji uprawnień, co może pozwolić atakującemu na pełne przejęcie systemu.
Rekomendacja
Zaktualizuj SiYuan do wersji 3.8.1 lub nowszej i pobieraj instalatory tylko z oficjalnych źródeł.
Inne podatności w SiYuan
Zobacz wszystkie- CVE-2026-82654Wysokie
SiYuan przed wersją v3.8.1 nieprawidłowo escapuje pola nazwy bloku, aliasu i notatki w funkcjach renderowania podpowiedzi, linków zwrotnych i breadcrumb. Atakujący mogą ustawić nazwę bloku zawierającą tagi HTML/script, które wykonają się, gdy inny użytkownik wyświetli dokumenty odwołujące się do tego bloku lub go wyświetlające.
- CVE-2026-82653Wysokie
SiYuan przed wersją v3.8.1 zawiera podatność na przechowywany XSS w funkcji confirmDialog(), gdzie nieescapowane nazwy pakietów i nazwy notatników są interpolowane bezpośrednio do przypisań innerHTML. Atakujący mogą przesłać złośliwe pakiety bazaar z ładunkiem HTML/script w polu nazwy, które wykonają się w przeglądarkach użytkowników podczas odinstalowywania pakietów lub odblokowywania zaszyfrowanych notatników.
- CVE-2026-82652Średnie
SiYuan przed wersją v3.8.1 nie filtruje treści z niewidocznych warstw z bloków SQL embed, kluczy widoku atrybutów i backlinków widoku atrybutów w trybie publikacji. Anonimowi czytelnicy mogą wyliczyć niewidoczne treści za pomocą tych trzech mechanizmów, mimo że administrator skonfigurował treści jako niepublikowane.
- CVE-2026-82651Średnie
SiYuan przed wersją v3.8.1 nie stosuje zabezpieczenia IsForbiddenAbsPath (wprowadzonego w GHSA-c8r8-95hg-mp34) do endpointów /history/*path i /repo/diff/*path w kernel/server/serve.go. Te trasy wymagają autoryzacji administratora, ale konstruują ścieżki plików niezależnie, więc uwierzytelniony administrator może pobrać historyczne migawki wrażliwych plików, które zabezpieczenie ma blokować, w tym data/.siyuan/publishAccess.json (hasła w trybie publikacji w postaci jawnej) oraz pliki w data/templates/.
- CVE-2026-82650Średnie
SiYuan 3.8.0 zawiera podatność na path traversal / ujawnienie wrażliwych plików w funkcji RenderTemplate (kernel/model/template.go), osiągalną przez endpoint POST /api/template/render (kernel/api/template.go). Endpoint ogranicza podaną ścieżkę tylko do katalogu roboczego (util.IsAbsPathInWorkspace), ale nie stosuje wykluczeń wrażliwych ścieżek, w przeciwieństwie do listy blokad refuseToAccess() w API plików. Pozwala to uwierzytelnionemu atakującemu na odczyt wrażliwych plików roboczych, w tym conf/conf.json, który zawiera token API i klucz podpisywania ciasteczek. Problem naprawiono w v3.8.1.
- 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-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.
Oryginalny opis (angielski, źródło NVD)
SiYuan Windows installer before version 3.8.1 (affected versions >= 2.0.14) contains an uncontrolled search path element vulnerability in its NSIS installer, which invokes system executables such as TASKKILL by name rather than by absolute path. Because NSIS nsExec::Exec resolves these calls using a search path that includes the installer's own launch directory ahead of System32, an attacker who plants a malicious executable (e.g., a renamed TASKKILL.exe) in that directory can have it executed when the installer runs. These calls occur in electron-builder's preInit hook before the license page is displayed, and with an all-users (elevated) install the planted binary executes with an elevated token, resulting in local privilege escalation.

