CVE-2026-55570
KrytyczneCVSS 9.0Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 24 - wyżej niż 24% wszystkich znanych CVE
Streszczenie
SiYuan to otwartoźródłowy system zarządzania wiedzą osobistą, który przed wersją 3.7.0 nie uciekał niezaufanych pól (nazwa, wersja, autor, opis) podczas serializacji do atrybutu HTML data-obj każdego karty rynkowej. W wyniku tego, pakiet zawierający pojedynczy cudzysłów mógł wstrzyknąć dowolny kod HTML, co prowadziło do eskalacji z DOM XSS do wykonania dowolnych poleceń systemowych.
Ocena ryzyka
Organizacje mogą być narażone na ataki, które umożliwiają zdalne wykonanie poleceń na systemach użytkowników, co może prowadzić do poważnych naruszeń bezpieczeństwa.
Rekomendacja
Zaleca się aktualizację SiYuan do wersji 3.7.0 lub nowszej, aby usunąć tę podatność oraz wdrożenie dodatkowych środków zabezpieczających w celu ochrony przed wstrzyknięciami kodu.
Inne podatności w SiYuan
Zobacz wszystkie- CVE-2026-105205Średnie
SiYuan przed wersją 3.8.5 zawiera podatność ujawnienia informacji, która pozwala czytelnikom w trybie publikacji poznać identyfikatory bloków backlinków i liczby odwołań z dokumentów chronionych hasłem i wyłączonych z publikacji poprzez odpytywanie opublikowanego dokumentu. Atakujący mogą wysyłać żądania POST do /api/block/getDocInfo lub getDocsInfo dla identyfikatora opublikowanego dokumentu, aby uzyskać refIDs i refCount ukrytych bloków referencyjnych, omijając granicę poufności publikacji.
- CVE-2026-103763Średnie
SiYuan przed wersją v3.8.5 zawiera podatność ujawniania informacji, która pozwala czytelnikom z uprawnieniami tylko do odczytu poznać metadane dokumentów wykluczonych z publikacji za pośrednictwem punktu końcowego getNotebookInfo. Atakujący, w tym anonimowi goście, gdy nie ustawiono hasła czytelnika, mogą zapytać o widoczne publikacyjnie notatniki, aby uzyskać liczbę dokumentów, rozmiar i znaczniki czasu modyfikacji ukrytych dokumentów.
- CVE-2026-103762Średnie
SiYuan przed wersją v3.8.5 zawiera podatność braku autoryzacji w punktach końcowych getRefCreateSavePath, getShorthandSavePath i getDocCreateSavePath, która pozwala odwiedzającym z uprawnieniami tylko do odczytu poznać identyfikatory niepublikowanych notatników. Atakujący z dostępem tylko do odczytu lub anonimowym dostępem publikacyjnym mogą wysłać POST z dowolnym otwartym identyfikatorem notatnika, aby otrzymać globalny identyfikator zapisu i szablon ścieżki zapisu, ujawniając istnienie ukrytego notatnika i czas jego utworzenia.
- CVE-2026-100644Wysokie
SiYuan przed wersją 3.8.4 zawiera podatność SQL injection w punkcie końcowym zapytań grafowych, gdzie parametr dailyNoteSavePath jest łączony z SQL bez escapowania. Nieuwierzytelnieni atakujący na opublikowanych stronach z wyłączonym uwierzytelnianiem mogą wstrzyknąć SQL poprzez UNION SELECT, aby wyodrębnić dowolne wiersze z bazy danych ze wszystkich notatników.
- CVE-2026-100641Wysokie
SiYuan przed wersją 3.8.4 nie escapuje HTML przechowywanej zawartości bloków fiszek przed interpolacją do znaczników listy menedżera kart. Zawartość bloku zwracana przez /api/riff/getRiffCards jest wstawiana do szablonu elementu karty w app/src/card/viewCards.ts i przypisywana do listElement.innerHTML, więc treść taka jak <img src=invalid onerror=...> staje się wykonywalnym atrybutem obsługi zdarzeń. Ponieważ główne okno SiYuan (Electron) jest tworzone z nodeIntegration i wyłączonym contextIsolation, administrator otwierający menedżer kart w przestrzeni roboczej z wrogą zawartością fiszek wykonuje skrypt atakującego w uprzywilejowanym rendererze, co może prowadzić do wykonania dowolnego kodu na hoście.
- CVE-2026-100640Średnie
SiYuan przed v3.8.4 zawiera pominięcie autoryzacji w handlerze IPC siyuan-get, które pozwala zdalnym rendererom jądra uzyskać dostęp do natywnych formatów schowka poprzez wywołanie komend clipboardReadMathML, clipboardReadOffice i clipboardReadWPS z pasującym plaintextem. Atakujący kontrolujący treść zdalnego renderera może uzyskać formuły MathML, bajty Office i bajty WPS z lokalnego schowka podczas operacji wklejania inicjowanej przez użytkownika.
- CVE-2026-100637Wysokie
Wersje SiYuan przed v3.8.4 zawierają podatność typu path traversal w endpointcie checkoutRepo, która pozwala uwierzytelnionym administratorom zapisywać pliki JSON poza obszarem roboczym. Atakujący może podać parametr sessionID zawierający sekwencje przejścia katalogowego, aby nadpisać dowolne pliki JSON w istniejących katalogach zapisywalnych przez jądro poza granicami workspace.
- CVE-2026-100636Wysokie
Wersje SiYuan przed v3.8.4 zawierają podatność typu path traversal w endpointcie exportBrowserHTML, która pozwala uwierzytelnionym administratorom zapisywać dowolną treść HTML do pliku index.html poza katalogiem workspace. Atakujący może podać parametr folder z sekwencjami przejścia katalogowego, aby wydostać się z katalogu eksportu i nadpisać index.html w dowolnej istniejącej lokalizacji zapisywalnej przez jądro, co umożliwia trwały XSS lub defacement workspace.
- CVE-2026-100633Średnie
SiYuan w wersjach 3.8.0–3.8.3 stosuje zabezpieczenie wrażliwych ścieżek w narzędziu plikowym MCP (util.IsForbiddenAbsPath() wywoływane z resolvePath()) tylko do dozwolonego katalogu głównego operacji rekurencyjnych, a nie do każdej rozwiązywanej ścieżki potomnej — niekompletna poprawka GHSA-c8r8-95hg-mp34. Uwierzytelniony administrator używający Agenta w aplikacji lub zewnętrznego serwera MCP może obejść denylistę chronionych plików obszaru roboczego: file.grep może zwracać pasujące linie z chronionych potomków, file.copy może kopiować chronionych potomków do zwykłej ścieżki, a unzip może nadpisywać chronionych potomków. Naprawiono w wersji 3.8.4.
- 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ń.
Oryginalny opis (angielski, źródło NVD)
SiYuan is an open-source personal knowledge management system. Prior to 3.7.0, it does not escape the untrusted fields (name, version, author, description) when they are serialized into the data-obj HTML attribute of each marketplace card. Because the attribute is single-quoted and the value is produced with JSON.stringify() (which does not escape ', <, or >), a package whose name contains a single quote breaks out of the attribute and injects arbitrary HTML. In the desktop client the main BrowserWindow runs with nodeIntegration: true, contextIsolation: false, so the injected markup escalates from DOM XSS to arbitrary OS command execution. This is the same root cause and same impact as the original advisory, reached through a sibling sink the patch did not cover. This vulnerability is fixed in 3.7.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

