<?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://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-29T22:35:31.110304+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" 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://db.gcve.eu/vuln/ghsa-jqgh-w3cc-7jqw</id>
    <title>GHSA-jqgh-w3cc-7jqw — Highcharts Dashboards: `__proto__` data table id writes sync listeners to `Object.prototype`</title>
    <updated>2026-10-29T22:35:31.121554+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> npm: @highcharts/dashboards</p>
<p>### Impact
The data cursor keeps its listener and state bookkeeping in plain objects keyed by data table id, so a table id of `__proto__` supplied in the `dataPool` connector configuration resolves to `Object.prototype` when a sync registers its listeners, and the registration creates a property on `Object.prototype` named after the sync state and holding the internal listener array. The property name begins with a state prefix fixed by the library, to which the sync `group` option can append an attacker-chosen suffix, and its value is the library's own listener array, but the property is enumerable and visible on every object in the page, and emitting a lasting state for that table id then throws, so syncs that keep lasting states, such as `extremes`, stop working. Exploitation requires that untrusted data reach the Dashboards configuration and that a sync such as `highlight` or `extremes` be enabled on a component using that table, which the same configuration can do. No user interaction is required beyond loading the board.</p>
<p>The injected property is inert until other code on the page reads or enumerates it, so consequences depend on the consuming application.</p>
<p>### Workarounds
**Drop-in fix - for any Highcharts Dashboards versions affected (1.0.0-4.2.1).**
Add the below IIFE to run after Highcharts Dashboards is loaded.</p>
<p>```
!function(t){if(t&amp;&amp;t.DataCursor&amp;&amp;t.DataTable){var e=t.DataCursor.prototype,r=t.DataTable.prototype;e.tableIdPollutionPatched||(e.tableIdPollutionPatc…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-jqgh-w3cc-7jqw"/>
  </entry>
</feed>
