CVE-2026-30926
Privilege Escalation in SiYuan Note Publish Service via API Abuse
Publication date: 2026-03-10
Last updated on: 2026-03-13
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| b3log | siyuan | to 3.5.10 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-284 | The product does not restrict or incorrectly restricts access to a resource from an unauthorized actor. |
| CWE-862 | The product does not perform an authorization check when an actor attempts to access a resource or perform an action. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
[{'type': 'paragraph', 'content': "CVE-2026-30926 is a privilege escalation vulnerability in the SiYuan Note application, specifically affecting versions prior to 3.5.10. The issue exists in the publish service's API endpoint /api/block/appendHeadingChildren, which is intended to allow users to append heading blocks to notebook documents."}, {'type': 'paragraph', 'content': 'The vulnerability arises because this endpoint only requires a basic authentication check (model.CheckAuth) that accepts users with RoleReader (read-only) privileges, but it does not enforce stricter authorization checks such as requiring admin or readonly roles. As a result, low-privilege users with read-only access can modify notebook content by appending new blocks, which should not be allowed.'}, {'type': 'paragraph', 'content': 'This flaw allows remote authenticated publish users with read-only permissions to perform unauthorized write operations, compromising the integrity of stored notes.'}] [1]
How can this vulnerability impact me? :
This vulnerability allows any authenticated publish user with read-only privileges to modify notebook content, which violates data integrity.
- Unauthorized modification of private notes.
- Content tampering in published notebooks.
- Loss of data integrity in stored documents.
- Potential chaining with other API endpoints for further privilege escalation.
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
[{'type': 'paragraph', 'content': 'This vulnerability can be detected by verifying if low-privilege publish users (RoleReader) are able to perform write operations on notebook content via the /api/block/appendHeadingChildren API endpoint.'}, {'type': 'paragraph', 'content': 'A practical detection method involves attempting to use the vulnerable endpoint with a RoleReader account to append content to an existing document and then checking if the modification is successful.'}, {'type': 'paragraph', 'content': 'Suggested commands to test this include:'}, {'type': 'list_item', 'content': 'Authenticate as a low-privilege publish user (RoleReader).'}, {'type': 'list_item', 'content': 'Query the database or API to retrieve an existing heading block ID.'}, {'type': 'list_item', 'content': 'Send a POST request to /api/block/appendHeadingChildren with a payload containing attacker-controlled content targeting the retrieved block ID.'}, {'type': 'list_item', 'content': 'Verify the document content to confirm if the unauthorized content was appended.'}, {'type': 'paragraph', 'content': 'Example curl command (replace placeholders accordingly):'}, {'type': 'list_item', 'content': 'curl -X POST https://[target]/api/block/appendHeadingChildren -H "Authorization: Bearer [RoleReader_token]" -H "Content-Type: application/json" -d \'{"id":"[heading_block_id]","childrenDOM":[{"type":"text","text":"malicious content"}]}\''}] [1]
What immediate steps should I take to mitigate this vulnerability?
The immediate mitigation step is to upgrade SiYuan Note to version 3.5.10 or later, where this vulnerability has been patched.
Until the upgrade can be applied, restrict access to the publish service API endpoint /api/block/appendHeadingChildren to trusted users only, or disable the publish service if possible.
Additionally, review and enforce stricter authorization checks on API endpoints, ensuring that only users with appropriate roles (e.g., CheckAdminRole) can perform write operations.