CVE-2026-54068 SiYuan: Unauthenticated SQLite Data Exfiltration via Template Injection in /api/icon/getDynamicIcon
Unauthenticated attackers can exfiltrate all user notes and data from SiYuan via SQL injection in an unprotected API endpoint.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-54068?
CVE-2026-54068 is a medium-severity missing authorization vulnerability in siyuan-note siyuan, published on 24 Jun 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
SiYuan is an open-source personal knowledge management system. Prior to 3.7.0, the /api/icon/getDynamicIcon endpoint is explicitly excluded from authentication in SiYuan's kernel router (router.go, "不需要鉴权" -- no auth needed). When called with type=8 and a valid block id parameter, this endpoint invokes RenderDynamicIconContentTemplate, which executes a Go template that includes the querySQL and queryBlocks functions. These functions run arbitrary SELECT statements against the SiYuan SQLite database. An unauthenticated network-adjacent attacker who knows a valid block ID can exfiltrate all user note content, tags, asset references, and block attributes from the database. This vulnerability is fixed in 3.7.0.
Weakness: CWE-306
Which versions are affected by CVE-2026-54068?
3 open source packages ship an affected version, including github.com/siyuan-note/siyuan/kernel.
| Package | Affected | Fixed in |
|---|---|---|
github.com/siyuan-note/siyuan/kernel Go | All versions | 0.0.0-20260628153353-2d5d72223df4 |
github.com/siyuan-note/siyuan/kernel Go | All versions | 0.0.0-20260628153353-2d5d72223df4 |
github.com/siyuan-note/siyuan/kernel Go | All versions | 0.0.0-20260628153353-2d5d72223df4 |
How do I fix CVE-2026-54068?
Upgrade github.com/siyuan-note/siyuan/kernel to 0.0.0-20260628153353-2d5d72223df4 or later.
Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.
Is CVE-2026-54068 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-54068 exists.
Sources
Also known as GHSA-gcm7-57gf-953c, GO-2026-5958.