<?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>Fri, 09 Oct 2026 18:30:06 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-268894</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-268894</link>
      <description>EUVD-2026-268894</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-268894</guid>
    </item>
    <item>
      <title>fkie_cve-2026-27013</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-27013</link>
      <description>&lt;p&gt;Fabric.js is a Javascript HTML5 canvas library. Prior to version 7.2.0, Fabric.js applies `escapeXml()` to text content during SVG export (`src/shapes/Text/TextSVGExportMixin.ts:186`) but fails to apply it to other user-controlled string values that are interpolated into SVG attribute markup. When attacker-controlled JSON is loaded via `loadFromJSON()` and later exported via `toSVG()`, the unescaped values break out of XML attributes and inject arbitrary SVG elements including event handlers. Any application that accepts user-supplied JSON (via `loadFromJSON()`, collaborative sharing, import features, CMS plugins) and renders the `toSVG()` output in a browser context (SVG preview, export download rendered in-page, email template, embed) is vulnerable to stored XSS. An attacker can execute arbitrary JavaScript in the victim&amp;#39;s browser session. Version 7.2.0 contains a fix.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Fabric.js is a Javascript HTML5 canvas library. Prior to version 7.2.0, Fabric.js applies `escapeXml()` to text content during SVG export (`src/shapes/Text/TextSVGExportMixin.ts:186`) but fails to apply it to other user-controlled string values that are interpolated into SVG attribute markup. When attacker-controlled JSON is loaded via `loadFromJSON()` and later exported via `toSVG()`, the unescaped values break out of XML attributes and inject arbitrary SVG elements including event handlers. Any application that accepts user-supplied JSON (via `loadFromJSON()`, collaborative sharing, import features, CMS plugins) and renders the `toSVG()` output in a browser context (SVG preview, export download rendered in-page, email template, embed) is vulnerable to stored XSS. An attacker can execute arbitrary JavaScript in the victim&amp;#39;s browser session. Version 7.2.0 contains a fix.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-27013</guid>
    </item>
    <item>
      <title>GHSA-hfvx-25r5-qc3w — Fabric.js Affected by Stored XSS via SVG Export</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-hfvx-25r5-qc3w</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: fabric&lt;/p&gt;
&lt;p&gt;fabric.js applies `escapeXml()` to text content during SVG export (`src/shapes/Text/TextSVGExportMixin.ts:186`) but fails to apply it to other user-controlled string values that are interpolated into SVG attribute markup. When attacker-controlled JSON is loaded via `loadFromJSON()` and later exported via `toSVG()`, the unescaped values break out of XML attributes and inject arbitrary SVG elements including event handlers.&lt;/p&gt;
&lt;p&gt;### Deserialization Path (no sanitization)&lt;/p&gt;
&lt;p&gt;`loadFromJSON()` (`src/canvas/StaticCanvas.ts:1229`) calls `enlivenObjects()` which calls `_fromObject()` (`src/shapes/Object/Object.ts:1902`). `_fromObject` passes all deserialized properties to the shape constructor via `new this(enlivedObjectOptions)`. The constructor ultimately calls `_setOptions()` (`src/CommonMethods.ts:9`) which iterates over every property and assigns it to the object via `this.set(prop, options[prop])`. There is no allowlist or sanitization - any property in the JSON, including `id`, is set verbatim on the fabric object.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;### Finding 1: XSS via `id` Property Injection&lt;/p&gt;
&lt;p&gt;The `id` property from deserialized JSON is interpolated directly into SVG attribute strings without escaping.&lt;/p&gt;
&lt;p&gt;**Vulnerable code (`src/shapes/Object/FabricObjectSVGExportMixin.ts`, line 89, `getSvgCommons()`):**
```typescript
getSvgCommons(
  this: FabricObjectSVGExportMixin &amp;amp; FabricObject &amp;amp; { id?: string },
) {
  return [
    this.id ? `id=&amp;#34;${this.id}&amp;#34; ` : &amp;#39;&amp;#39;,  // &amp;lt;-- unescaped, user-controlled
    this.clipPath…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: fabric&lt;/p&gt;
&lt;p&gt;fabric.js applies `escapeXml()` to text content during SVG export (`src/shapes/Text/TextSVGExportMixin.ts:186`) but fails to apply it to other user-controlled string values that are interpolated into SVG attribute markup. When attacker-controlled JSON is loaded via `loadFromJSON()` and later exported via `toSVG()`, the unescaped values break out of XML attributes and inject arbitrary SVG elements including event handlers.&lt;/p&gt;
&lt;p&gt;### Deserialization Path (no sanitization)&lt;/p&gt;
&lt;p&gt;`loadFromJSON()` (`src/canvas/StaticCanvas.ts:1229`) calls `enlivenObjects()` which calls `_fromObject()` (`src/shapes/Object/Object.ts:1902`). `_fromObject` passes all deserialized properties to the shape constructor via `new this(enlivedObjectOptions)`. The constructor ultimately calls `_setOptions()` (`src/CommonMethods.ts:9`) which iterates over every property and assigns it to the object via `this.set(prop, options[prop])`. There is no allowlist or sanitization - any property in the JSON, including `id`, is set verbatim on the fabric object.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;### Finding 1: XSS via `id` Property Injection&lt;/p&gt;
&lt;p&gt;The `id` property from deserialized JSON is interpolated directly into SVG attribute strings without escaping.&lt;/p&gt;
&lt;p&gt;**Vulnerable code (`src/shapes/Object/FabricObjectSVGExportMixin.ts`, line 89, `getSvgCommons()`):**
```typescript
getSvgCommons(
  this: FabricObjectSVGExportMixin &amp;amp; FabricObject &amp;amp; { id?: string },
) {
  return [
    this.id ? `id=&amp;#34;${this.id}&amp;#34; ` : &amp;#39;&amp;#39;,  // &amp;lt;-- unescaped, user-controlled
    this.clipPath…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-hfvx-25r5-qc3w</guid>
    </item>
  </channel>
</rss>
