Home

Description

Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create charts. In versions 4.9.0 through 5.0.0, an authenticated user with project-editor permissions can store arbitrary HTML/JavaScript in the `ChartDatasetConfig.legend` field. The payload is persisted verbatim in the database, propagated through the Chart.js rendering pipeline, and injected into the tooltip DOM element via an unguarded `innerHTML` assignment in `ChartTooltip.js`. Every unauthenticated viewer of the public dashboard triggers JavaScript execution on page load — no hover interaction is required. Browser-based Playwright verification confirmed `alert('localhost')` fires immediately and `<img src="x" onerror="alert(document.domain)">` is present in the `#chartjs-tooltip` DOM element. Version 5.0.1 contains a fix.

PUBLISHED Reserved 2026-04-20 | Published 2026-06-04 | Updated 2026-06-05 | Assigner GitHub_M




HIGH: 7.6CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N

Problem types

CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Product status

>= 4.9.0, < 5.0.1
affected

References

github.com/...rtbrew/security/advisories/GHSA-6q2j-365c-7gqf exploit

github.com/...rtbrew/security/advisories/GHSA-6q2j-365c-7gqf

cve.org (CVE-2026-41518)

nvd.nist.gov (CVE-2026-41518)

Download JSON