W aplikacji SiYuan przed wersją 3.6.2 atakujący może umieścić złośliwy URL w polu Attribute View, który prowadzi do stored XSS uruchamianego po otwarciu widoku Gallery lub Kanban. W kliencie desktopowym Electron podatność eskaluje do pełnego wykonania poleceń systemowych (RCE) w kontekście konta ofiary.
▸ Pokaż oryginał (EN)
SiYuan is a personal knowledge management system. Prior to version 3.6.2, an attacker who can place a malicious URL in an Attribute View mAsse field can trigger stored XSS when a victim opens the Gallery or Kanban view with “Cover From -> Asset Field” enabled. The vulnerable code accepts arbitrary http(s) URLs without extensions as images, stores the attacker-controlled string in coverURL, and injects it directly into an <img src="..."> attribute without escaping. In the Electron desktop client, the injected JavaScript executes with nodeIntegration enabled and contextIsolation disabled, so the XSS reaches arbitrary OS command execution under the victim’s account. This issue has been patched in version 3.6.2.
Podatny kod akceptuje dowolne adresy URL z protokołem http(s) jako wartość obrazka w polu 'Cover From -> Asset Field'. Kontrolowany przez atakującego ciąg znaków jest zapisywany w zmiennej coverURL i wstawiany bezpośrednio do atrybutu src znacznika <img> bez żadnego escapowania. Kiedy ofiara otwiera widok Gallery lub Kanban z włączoną opcją 'Cover From -> Asset Field', złośliwy payload JavaScript zostaje wykonany. W kliencie Electron podatność ma krytyczny zasięg — aplikacja działa z włączoną opcją nodeIntegration i wyłączoną opcją contextIsolation, co pozwala na ucieczkę z piaskownicy przeglądarki i wykonanie dowolnych poleceń systemu operacyjnego.
Atakujący może wykonać dowolny kod na poziomie systemu operacyjnego w kontekście konta zalogowanego użytkownika (RCE), co umożliwia pełne przejęcie kontroli nad stacją roboczą ofiary, kradzież danych oraz dalszy lateral movement w sieci.
Należy zaktualizować SiYuan do wersji 3.6.2 lub nowszej, w której problem został naprawiony. Patch dostępny jest w oficjalnym repozytorium projektu: https://github.com/siyuan-note/siyuan/releases/tag/v3.6.2
B3Log SiYuan we wszystkich wersjach przed 3.6.2, w szczególności klient desktopowy oparty na Electron z włączoną opcją nodeIntegration i wyłączoną contextIsolation
Podatność wymaga interakcji ofiary (UI:R) — otworzenia widoku Gallery lub Kanban z odpowiednią konfiguracją — jednak w środowisku współdzielonej bazy wiedzy lub przy ataku socjotechnicznym próg ten jest łatwy do przekroczenia. Zgłoszona i udokumentowana w GitHub Security Advisory GHSA-rx4h-526q-4458.
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:HB3log Siyuan
APPB3Log< 3.6.2
Powiązane podatności
B3Log SiYuan: XSS w diagramach Mermaid eskaluje do RCE w Electron
RCE przez stored XSS w kliencie desktopowym B3Log SiYuan
RCE w SiYuan poprzez nadmiernie permisywną politykę CORS
Path Traversal w B3Log SiYuan — nieautoryzowane odczytywanie struktury plików
B3Log SiYuan — nieuprawniony odczyt treści dokumentów przez API