<?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://db.gcve.eu</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>Thu, 01 Oct 2026 21:49:01 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-44588</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-44588</link>
      <description>&lt;p&gt;SiYuan is an open-source personal knowledge management system. Prior to 3.7.0,  he tooltip mouseover handler in app/src/block/popover.ts reads aria-label via getAttribute and passes it through decodeURIComponent before assigning to messageElement.innerHTML in app/src/dialog/tooltip.ts:41. The encoder used at the producer side, escapeAriaLabel in app/src/util/escape.ts:19-25, only handles HTML special characters (&amp;#34;, &amp;#39;, &amp;lt;, literal &amp;amp;lt;) — it leaves %XX URL-escapes untouched. So a doc title containing %3Cimg src=x onerror=...%3E round-trips through escapeAriaLabel and the HTML attribute layer unmodified. Then decodeURIComponent on the consumer side converts %3C to a literal &amp;lt; character (a real &amp;lt;, NOT a character reference). When that string is assigned to innerHTML, the HTML5 tokenizer enters TagOpenState on the literal &amp;lt;, parses the &amp;lt;img&amp;gt; element, and the onerror handler fires. Because the renderer runs with nodeIntegration: true, contextIsolation: false, webSecurity: false (app/electron/main.js:407-411), require(&amp;#39;child_process&amp;#39;) is reachable from the injected handler, escalating to arbitrary code execution.This vulnerability is fixed in 3.7.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;SiYuan is an open-source personal knowledge management system. Prior to 3.7.0,  he tooltip mouseover handler in app/src/block/popover.ts reads aria-label via getAttribute and passes it through decodeURIComponent before assigning to messageElement.innerHTML in app/src/dialog/tooltip.ts:41. The encoder used at the producer side, escapeAriaLabel in app/src/util/escape.ts:19-25, only handles HTML special characters (&amp;#34;, &amp;#39;, &amp;lt;, literal &amp;amp;lt;) — it leaves %XX URL-escapes untouched. So a doc title containing %3Cimg src=x onerror=...%3E round-trips through escapeAriaLabel and the HTML attribute layer unmodified. Then decodeURIComponent on the consumer side converts %3C to a literal &amp;lt; character (a real &amp;lt;, NOT a character reference). When that string is assigned to innerHTML, the HTML5 tokenizer enters TagOpenState on the literal &amp;lt;, parses the &amp;lt;img&amp;gt; element, and the onerror handler fires. Because the renderer runs with nodeIntegration: true, contextIsolation: false, webSecurity: false (app/electron/main.js:407-411), require(&amp;#39;child_process&amp;#39;) is reachable from the injected handler, escalating to arbitrary code execution.This vulnerability is fixed in 3.7.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-44588</guid>
    </item>
    <item>
      <title>GHSA-25rp-h46x-2hjm — SiYuan: Electron Renderer RCE via decodeURIComponent-driven tooltip XSS in aria-label sink (incomplete fix for CVE-2026…</title>
      <link>https://db.gcve.eu/vuln/ghsa-25rp-h46x-2hjm</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;## Summary&lt;/p&gt;
&lt;p&gt;The tooltip mouseover handler in `app/src/block/popover.ts` reads `aria-label` via `getAttribute` and passes it through `decodeURIComponent` before assigning to `messageElement.innerHTML` in `app/src/dialog/tooltip.ts:41`. The encoder used at the producer side, `escapeAriaLabel` in `app/src/util/escape.ts:19-25`, only handles HTML special characters (`&amp;#34;`, `&amp;#39;`, `&amp;lt;`, literal `&amp;amp;lt;`) — it leaves `%XX` URL-escapes untouched. So a doc title containing `%3Cimg src=x onerror=...%3E` round-trips through `escapeAriaLabel` and the HTML attribute layer unmodified. Then `decodeURIComponent` on the consumer side converts `%3C` to a literal `&amp;lt;` character (a real `&amp;lt;`, NOT a character reference). When that string is assigned to `innerHTML`, the HTML5 tokenizer enters TagOpenState on the literal `&amp;lt;`, parses the `&amp;lt;img&amp;gt;` element, and the `onerror` handler fires.&lt;/p&gt;
&lt;p&gt;Because the renderer runs with `nodeIntegration: true, contextIsolation: false, webSecurity: false` (`app/electron/main.js:407-411`), `require(&amp;#39;child_process&amp;#39;)` is reachable from the injected handler, escalating to arbitrary code execution.&lt;/p&gt;
&lt;p&gt;Doc titles, AV column names + descriptions, AV select options, file-tree tooltips all reach this sink because they&amp;#39;re rendered into `class=&amp;#34;ariaLabel&amp;#34;` elements with `aria-label=&amp;#34;${escapeAriaLabel(...)}&amp;#34;`. Doc title is the easiest plant — any user with create/rename access lands the payload, and the file survives `.sy.zip` round-trip without modification.&lt;/p&gt;
&lt;p&gt;## Why a &amp;#34;double HTML-decode&amp;#34;…&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;## Summary&lt;/p&gt;
&lt;p&gt;The tooltip mouseover handler in `app/src/block/popover.ts` reads `aria-label` via `getAttribute` and passes it through `decodeURIComponent` before assigning to `messageElement.innerHTML` in `app/src/dialog/tooltip.ts:41`. The encoder used at the producer side, `escapeAriaLabel` in `app/src/util/escape.ts:19-25`, only handles HTML special characters (`&amp;#34;`, `&amp;#39;`, `&amp;lt;`, literal `&amp;amp;lt;`) — it leaves `%XX` URL-escapes untouched. So a doc title containing `%3Cimg src=x onerror=...%3E` round-trips through `escapeAriaLabel` and the HTML attribute layer unmodified. Then `decodeURIComponent` on the consumer side converts `%3C` to a literal `&amp;lt;` character (a real `&amp;lt;`, NOT a character reference). When that string is assigned to `innerHTML`, the HTML5 tokenizer enters TagOpenState on the literal `&amp;lt;`, parses the `&amp;lt;img&amp;gt;` element, and the `onerror` handler fires.&lt;/p&gt;
&lt;p&gt;Because the renderer runs with `nodeIntegration: true, contextIsolation: false, webSecurity: false` (`app/electron/main.js:407-411`), `require(&amp;#39;child_process&amp;#39;)` is reachable from the injected handler, escalating to arbitrary code execution.&lt;/p&gt;
&lt;p&gt;Doc titles, AV column names + descriptions, AV select options, file-tree tooltips all reach this sink because they&amp;#39;re rendered into `class=&amp;#34;ariaLabel&amp;#34;` elements with `aria-label=&amp;#34;${escapeAriaLabel(...)}&amp;#34;`. Doc title is the easiest plant — any user with create/rename access lands the payload, and the file survives `.sy.zip` round-trip without modification.&lt;/p&gt;
&lt;p&gt;## Why a &amp;#34;double HTML-decode&amp;#34;…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-25rp-h46x-2hjm</guid>
    </item>
  </channel>
</rss>
