SiYuan Note, Information Disclosure (CWE-863), CVE-2026-72792 (Medium) -DC-Sep2026-2206

Listen to this Post

The vulnerability in CVE-2026-72792 arises from an authorization bypass in SiYuan Note’s tag retrieval endpoint. The `/api/tag/getTag` endpoint is designed to return tags and their occurrence counts for documents. For reader roles in publish mode, the system applies a filter called FilterTagsByPublishIgnore. This filter checks only the “visible” publish tier—meaning it determines if a document is published and not hidden. However, it performs no check on whether the document is protected by a publish password.
When a document is published but password-protected, it is still “visible” in the sense that it appears in the publish space. The `FilterTagsByPublishIgnore` function calls CheckPathAccessableByPublishIgnore, which returns `true` for any visible document, including those with a password. Crucially, it omits the second half of the complete access gate, checkBlockTreeAccessableByPublishAccess, which also requires that either the document has no password or that a valid publish authentication cookie is present. Because of this omission, a reader who has never entered the document’s password can still have the tags from that document included in the API response.
This is not a hypothetical flaw. The project’s own developers previously identified and fixed this exact type of tier mismatch in a sibling endpoint. Commit `82e9ded42` (“Enforce publish access for graph nodes”) replaced a visible-only filter on the graph endpoint with a password-aware one. The tag filter, however, was not upgraded alongside it, retaining the vulnerable pattern.
The information disclosed is user-authored content: the tag text (span.Content) that an author writes inside a document. This can include project codenames, personal names, client names, and subject matter. The accompanying occurrence count reveals how heavily each term appears, providing additional context. An attacker can enumerate the tag vocabulary of password-protected documents, effectively learning their internal terminology without ever accessing the content.
The vulnerability was verified as unfixed in version v3.7.4-alpha.1, where the `getTag` function still calls the vulnerable filter. No subsequent commit on the development branch has addressed this specific file.

DailyCVE Form:

Platform: SiYuan Note
Version: before v3.7.4
Vulnerability: Information Disclosure
Severity: Medium (CVSS 5.8)
date: 2026-08-12

Prediction: Patch expected Q3 2026

What Undercode Say:

Analytics of this vulnerability show that the core issue is a logic flaw in the authorization filter. The system correctly identifies visible documents but fails to enforce password-based access control for tag data.

Check if the vulnerable endpoint returns tags from password-protected docs
curl -X POST http://127.0.0.1:6808/api/tag/getTag -H "Content-Type: application/json" -d '{}'
Differential check: attempt to access the protected document directly
This should fail, proving the tag endpoint bypasses the password check
curl -X GET http://127.0.0.1:6808/api/document/getDoc -H "Cookie: ..." Fails
Check git history for the vulnerable file
git log --oneline -- kernel/api/tag.go
git log -S "FilterTagsByPublishIgnore" -- kernel/model/

Exploit: (Educational Purposes!)

An attacker can exploit this by sending a POST request to `/api/tag/getTag` with an empty JSON body. No authentication or password is required.

curl -X POST http://<target-ip>:6808/api/tag/getTag -H "Content-Type: application/json" -d '{}'

The response will contain a tag tree that includes labels and counts from all published documents, including those that are password-protected, as long as the attacker’s session has not authenticated to those documents.

Protection:

The suggested fix is to replace the vulnerable `FilterTagsByPublishIgnore` with a password-aware filter, mirroring the fix applied in commit 82e9ded42. This involves resolving each document’s password via `GetPathPasswordByPublishAccess` and requiring `CheckPublishAuthCookie` before counting a tag, in addition to the existing visibility test. A more durable solution is to audit every remaining `ByPublishIgnore` call site against the complete `checkBlockTreeAccessableByPublishAccess` gate.

Impact:

An anonymous reader or any publish `RoleReader` can enumerate the tag vocabulary of password-protected documents, including usage counts. This discloses sensitive subject matter, names, and internal terminology that the publish password was intended to protect. The impact is limited to confidentiality, but it can reveal significant information about the content of protected documents.

🎯Let’s Practice Exploiting & Learn Patching For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

Sources:

Reported By: github.com
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top