CVE-2026-72803: SiYuan missing publish-access filter on getBlockAttrs and batchGetBlockAttrs

CVE-2026-72803 · Severity: medium · CVSS 5.8 · Published 2026-08-12

SiYuan is a note-taking and document management application. Two API endpoints (`getBlockAttrs` and `batchGetBlockAttrs`) fail to enforce access controls on document blocks marked as publish-forbidden or password-protected. An attacker can read sensitive block metadata including user-written memos and custom fields from protected documents without authorization, with the batch endpoint enabling bulk extraction of attributes across an entire workspace.

Technologies: github.com/siyuan-note/siyuan/kernel (Go), SiYuan. Vendors: Go, SiYuan.

Quick answers

Is CVE-2026-72803 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-72803 being exploited in the wild.
How severe is CVE-2026-72803?
Medium severity, with a CVSS score of 5.8, published 12 August 2026.
Which products and versions are affected?
github.com/siyuan-note/siyuan/kernel (Go) < 0.0.0-20260724093256-229fdffd7e4a, SEMVER:introduced=0,fixed=0.0.0-20260724093256-229fdffd7e4a; SiYuan < 0.0.0-20260724093256-229fdffd7e4a.
Is there a fix for CVE-2026-72803?
Yes. github.com/siyuan-note/siyuan/kernel (Go): upgrade to 0.0.0-20260724093256-229fdffd7e4a or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-72803 attacked?
It is attacked over the network, in a web application.
Am I affected by CVE-2026-72803?
Check whether you run github.com/siyuan-note/siyuan/kernel (Go) or SiYuan at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • github.com/siyuan-note/siyuan/kernel (Go): upgrade to 0.0.0-20260724093256-229fdffd7e4a or later
    go get github.com/siyuan-note/siyuan/kernel@v0.0.0-20260724093256-229fdffd7e4a

Technical details

The vulnerability is a missing authorization check (CWE-862) in two Go API handlers. The `getBlockAttrs` and `batchGetBlockAttrs` handlers directly query the database (`sql.GetBlockAttrs`, `sql.BatchGetBlockAttrs`) without calling the sibling guard function `checkBlockPublishAccess` that protects the analogous `getBlockInfo` endpoint. Both handlers are registered with `CheckAuth` only, making them accessible to anonymous users when `Publish.Auth.Enable` is false and to any `RoleReader` publish token. Exploitation requires network access to the publish port (default 6808) and knowledge of valid block IDs; no user interaction is needed. The attacker can extract the block's entire internal attribute list (IAL)—including name, alias, memo (user-authored notes), bookmark, tags, and arbitrary custom fields—from any block, including those in protected documents. The batch variant accepts an ID list in a single request, enabling workspace-wide attribute sweep attacks. The suggested fix is to apply `checkBlockPublishAccess` per-ID before returning results.

Affected products

  • siyuan-note siyuan < 0.0.0-20260724093256-229fdffd7e4a

Identifiers

  • CVE-2026-72803
  • GHSA-qvq9-hq6p-v378
  • GO-2026-6404

Timeline

  • 2026-07-24: disclosed: GitHub Security Advisory published
  • 2026-09-03: advisory: Published to GitHub Advisory Database and CVE-2026-72803 assigned
  • 2026-07-24: patched: Patch available in commit 229fdffd7e4afdef543d4d8495657fda8a369400

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.