<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-04T17:13:56.932089+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/fkie_cve-2026-54705</id>
    <title>fkie_cve-2026-54705</title>
    <updated>2026-10-04T17:13:57.800684+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>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, &lt;math-span&gt;, &lt;math-div&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.</p>
      </div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/fkie_cve-2026-54705"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-fm7p-gw32-828p</id>
    <title>GHSA-fm7p-gw32-828p — mathlive's Lack of Escaping of HTML allows for XSS</title>
    <updated>2026-10-04T17:13:57.800794+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> npm: mathlive</p>
<p>### Summary</p>
<p>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.</p>
<p>### Details</p>
<p>`Box.toMarkup` at `src/core/box.ts:356` concatenates `this.value` into the rendered span without HTML-escaping. In text mode any literal character (`&lt;`, `&gt;`, `&amp;`, `"`) 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;` rule, and `scanText`, `case 'text'`, and the `mode === 'text'` early return all emit `atom.value` raw.</p>
<p>Both outputs flow into `innerHTML` sinks via the public API. `&lt;math-span&gt;` / `&lt;math-div&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`).</p>
<p>### PoC</p>
<p>1. Go to https://mathlive.io/mathfield/demo/
2. open DevTools console and paste:</p>
<p>```js
const s = document.createElement('math-span');
s.style.display = 'block';
s.textContent = '\\text{&lt;img src=x onerror=alert(1)&gt;}';
document.body.appendChild(s);
s.scrollIntoView();
```</p>
<p>Equivalent payloads: `\mbox{&lt;img src=x onerror=alert(1)&gt;}`</p>
<p>or</p>
<p>```js
impo…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-fm7p-gw32-828p"/>
  </entry>
</feed>
