<?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://vulnerability.circl.lu</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>Sun, 04 Oct 2026 17:13:56 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-54705</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-54705</link>
      <description>&lt;p&gt;MathLive provides web components for math display and input. Prior to 0.110.0, MathLive fails to escape text-mode content in \text{} and \mbox{} commands in Box.toMarkup at src/core/box.ts, in xmlEscape, scanText, and text-mode output in src/formats/atom-to-math-ml.ts, and through convertLatexToMarkup, convertLatexToMathMl, &amp;lt;math-span&amp;gt;, &amp;lt;math-div&amp;gt;, and the default identity MathfieldElement.createHTML, allowing malicious input to run arbitrary JavaScript when rendered. This issue is fixed in version 0.110.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;MathLive provides web components for math display and input. Prior to 0.110.0, MathLive fails to escape text-mode content in \text{} and \mbox{} commands in Box.toMarkup at src/core/box.ts, in xmlEscape, scanText, and text-mode output in src/formats/atom-to-math-ml.ts, and through convertLatexToMarkup, convertLatexToMathMl, &amp;lt;math-span&amp;gt;, &amp;lt;math-div&amp;gt;, and the default identity MathfieldElement.createHTML, allowing malicious input to run arbitrary JavaScript when rendered. This issue is fixed in version 0.110.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-54705</guid>
    </item>
    <item>
      <title>GHSA-fm7p-gw32-828p — mathlive's Lack of Escaping of HTML allows for XSS</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-fm7p-gw32-828p</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: mathlive&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Despite the 0.104.0 patch escaping attribute-bearing constructs (`\htmlData`, `\href`), text-content reflection was missed. The `\text{}`, `\mbox{}` commands accept arbitrary characters in their body and emit them raw and unescaped into both the HTML markup and the MathML output, leading to XSS.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;`Box.toMarkup` at `src/core/box.ts:356` concatenates `this.value` into the rendered span without HTML-escaping. In text mode any literal character (`&amp;lt;`, `&amp;gt;`, `&amp;amp;`, `&amp;#34;`) is wrapped into a `TextAtom` whose `value` is the raw codepoint and lands in the markup unchanged. The MathML serializer at `src/formats/atom-to-math-ml.ts` is independently broken: `xmlEscape` deliberately omits the `&amp;amp;` rule, and `scanText`, `case &amp;#39;text&amp;#39;`, and the `mode === &amp;#39;text&amp;#39;` early return all emit `atom.value` raw.&lt;/p&gt;
&lt;p&gt;Both outputs flow into `innerHTML` sinks via the public API. `&amp;lt;math-span&amp;gt;` / `&amp;lt;math-div&amp;gt;` (`src/public/math-static-elements.ts:331,407`) bypass `MathfieldElement.createHTML` entirely. The editor and SSR paths route through `createHTML`, but its default value is the identity function (`src/public/mathfield-element.ts:789`).&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;1. Go to https://mathlive.io/mathfield/demo/
2. open DevTools console and paste:&lt;/p&gt;
&lt;p&gt;```js
const s = document.createElement(&amp;#39;math-span&amp;#39;);
s.style.display = &amp;#39;block&amp;#39;;
s.textContent = &amp;#39;\\text{&amp;lt;img src=x onerror=alert(1)&amp;gt;}&amp;#39;;
document.body.appendChild(s);
s.scrollIntoView();
```&lt;/p&gt;
&lt;p&gt;Equivalent payloads: `\mbox{&amp;lt;img src=x onerror=alert(1)&amp;gt;}`&lt;/p&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;p&gt;```js
impo…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: mathlive&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Despite the 0.104.0 patch escaping attribute-bearing constructs (`\htmlData`, `\href`), text-content reflection was missed. The `\text{}`, `\mbox{}` commands accept arbitrary characters in their body and emit them raw and unescaped into both the HTML markup and the MathML output, leading to XSS.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;`Box.toMarkup` at `src/core/box.ts:356` concatenates `this.value` into the rendered span without HTML-escaping. In text mode any literal character (`&amp;lt;`, `&amp;gt;`, `&amp;amp;`, `&amp;#34;`) is wrapped into a `TextAtom` whose `value` is the raw codepoint and lands in the markup unchanged. The MathML serializer at `src/formats/atom-to-math-ml.ts` is independently broken: `xmlEscape` deliberately omits the `&amp;amp;` rule, and `scanText`, `case &amp;#39;text&amp;#39;`, and the `mode === &amp;#39;text&amp;#39;` early return all emit `atom.value` raw.&lt;/p&gt;
&lt;p&gt;Both outputs flow into `innerHTML` sinks via the public API. `&amp;lt;math-span&amp;gt;` / `&amp;lt;math-div&amp;gt;` (`src/public/math-static-elements.ts:331,407`) bypass `MathfieldElement.createHTML` entirely. The editor and SSR paths route through `createHTML`, but its default value is the identity function (`src/public/mathfield-element.ts:789`).&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;1. Go to https://mathlive.io/mathfield/demo/
2. open DevTools console and paste:&lt;/p&gt;
&lt;p&gt;```js
const s = document.createElement(&amp;#39;math-span&amp;#39;);
s.style.display = &amp;#39;block&amp;#39;;
s.textContent = &amp;#39;\\text{&amp;lt;img src=x onerror=alert(1)&amp;gt;}&amp;#39;;
document.body.appendChild(s);
s.scrollIntoView();
```&lt;/p&gt;
&lt;p&gt;Equivalent payloads: `\mbox{&amp;lt;img src=x onerror=alert(1)&amp;gt;}`&lt;/p&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;p&gt;```js
impo…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-fm7p-gw32-828p</guid>
    </item>
  </channel>
</rss>
