SiYuan is a personal knowledge management system. Prior to version 3.6.2, a malicious website can achieve Remote Code Execution (RCE) on any desktop running SiYuan by exploiting the permissive CORS policy (Access-Control-Allow-Origin: * + Access-Control-Allow-Private-Network: true) to inject a JavaScript snippet via the API. The injected snippet executes in Electron's Node.js context with full OS access the next time the user opens SiYuan's UI. No user interaction is required beyond visiting the malicious website while SiYuan is running. This issue has been patched in version 3.6.2.
SiYuan exposes a local API with CORS headers set to 'Access-Control-Allow-Origin: *' and 'Access-Control-Allow-Private-Network: true', allowing any website to send requests to this API. A malicious website can inject a JavaScript code fragment through the API, which is saved and executed in the context of the Node.js engine of the Electron application when the SiYuan user interface is opened next. This process does not require any additional interaction from the victim beyond visiting the malicious website while the SiYuan application is running in the background.
Attacker gains full access to the victim's operating system with SiYuan process privileges, enabling execution of arbitrary commands, data theft, installation of malicious software, or further lateral movement in the network.
SiYuan must be updated to version 3.6.2 or later, where the vulnerability has been patched. The patch is available in the official project repository: https://github.com/siyuan-note/siyuan/releases/tag/v3.6.2
B3Log SiYuan in all versions before 3.6.2 in the desktop variant (based on Electron)
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:HB3log Siyuan
APPB3Log< 3.6.2
Related vulnerabilities
B3Log SiYuan: XSS w diagramach Mermaid eskaluje do RCE w Electron
RCE przez stored XSS w kliencie desktopowym B3Log SiYuan
Stored XSS → RCE w B3Log SiYuan via złośliwy URL w Attribute View
Path Traversal w B3Log SiYuan — nieautoryzowane odczytywanie struktury plików
B3Log SiYuan — nieuprawniony odczyt treści dokumentów przez API