Katalog CVE

CVE-2026-75916

WysokieCVSS 8.6
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

SiYuan do wersji 3.7.3 zawiera podatność cross-site scripting w wyskakującym oknie autouzupełniania referencji bloków '(('. W funkcji genHintItemHTML() (app/src/protyle/hint/extend.ts) pola nazwy, aliasu i notatki kandydata są łączone w HTML wyskakującego okna bez escapowania. Atakujący, który może ustawić te pola metadanych na bloku, może wstrzyknąć samouruchamiający się ładunek (np. <img src=x onerror=...>), który wykonuje się automatycznie, gdy ofiara wpisze '((' i wyszuka termin, który ujawni spreparowany blok. Ponieważ okna Electron SiYuan działają z włączonym nodeIntegration, wyłączonym contextIsolation i bez CSP, wstrzyknięty skrypt uzyskuje dostęp do require('child_process'), co pozwala na eskalację XSS do dowolnego wykonania poleceń systemu operacyjnego.

Ocena ryzyka

Ryzyko wykonania dowolnych poleceń systemu operacyjnego na komputerze ofiary, co może prowadzić do pełnego przejęcia systemu i naruszenia danych.

Rekomendacja

Zaktualizuj SiYuan do wersji 3.7.4 lub nowszej. Ogranicz zaufanie do bloków z zewnętrznych źródeł i rozważ wyłączenie nodeIntegration w oknach Electron.

Oryginalny opis (angielski, źródło NVD)

SiYuan through 3.7.3 contains a cross-site scripting vulnerability in the '((' block-reference autocomplete hint popup. In genHintItemHTML() (app/src/protyle/hint/extend.ts), a candidate block's name, alias, and memo fields are concatenated into the popup's HTML without escaping. An attacker who can set these metadata fields on a block can inject a self-firing payload (e.g. <img src=x onerror=...>) that executes automatically when a victim types '((' followed by a search term that surfaces the crafted block. Because SiYuan's Electron windows run with nodeIntegration enabled, contextIsolation disabled, and no CSP, the injected script gains require('child_process') access, allowing the XSS to escalate to arbitrary OS command execution.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS