CVE-2026-69085
KrytyczneCVSS 10.0Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 16 - wyżej niż 16% wszystkich znanych CVE
Streszczenie
SiYuan przed wersją v3.7.3 zawiera lukę wstrzyknięcia SQL w punkcie końcowym /api/filetree/searchDocs, gdzie dostarczony przez wywołującego parametr keyword jest łączony bezpośrednio z instrukcjami SQL bez escapowania lub wiązania parametrów. Punkt końcowy jest osiągalny przez token publish RoleReader lub nieuwierzytelnionych użytkowników, gdy tryb publikacji jest włączony z Publish.Auth.Enable ustawionym na false. Ponieważ instrukcja jest wykonywana na uchwycie SQLite do odczytu i zapisu za pomocą sterownika obsługującego instrukcje składowane (rozdzielone średnikami), atakujący może odczytywać i modyfikować zawartość bazy danych we wszystkich notatnikach w postaci jawnego tekstu (niezaszyfrowanych) w instancji.
Ocena ryzyka
Ryzyko obejmuje odczyt i modyfikację wszystkich danych w niezaszyfrowanych notatnikach, co może prowadzić do wycieku poufnych informacji i naruszenia integralności danych.
Rekomendacja
Zaleca się natychmiastową aktualizację SiYuan do wersji v3.7.3 lub nowszej oraz włączenie uwierzytelniania dla trybu publikacji.
Inne podatności w SiYuan
Zobacz wszystkie- 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.
- 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.
Oryginalny opis (angielski, źródło NVD)
SiYuan before v3.7.3 contains a SQL injection vulnerability in the /api/filetree/searchDocs endpoint, where the caller-supplied keyword parameter is concatenated directly into SQL statements with no escaping or parameter binding. The endpoint is reachable by a publish RoleReader token, or unauthenticated when publish mode is enabled with Publish.Auth.Enable set to false. Because the statement executes on a read-write SQLite handle via a driver that supports stacked (semicolon-separated) statements, an attacker can read and modify database content across all cleartext (non-encrypted) notebooks on the instance.

