Chartbrew: Stored Cross-Site Scripting (XSS) via File Upload API
Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create charts. Prior to version 4.8.4, the application allows uploading files (project logos) without validating the file type or content. It trusts the extension provided by the user. These files are saved to the uploads/ directory and served statically. An attacker can upload an HTML file containing malicious JavaScript. Since authentication tokens are likely stored in localStorage (as they are returned in the API body), this XSS can lead to account takeover. This issue has been patched in version 4.8.4.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-27605
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 17:15 UTC · Revision 1
Source evidence
Chartbrew: Stored Cross-Site Scripting (XSS) via File Upload API
core-osv · Original sourcePublished 6 Mar 2026, 04:08 UTC
Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create charts. Prior to version 4.8.4, the application allows uploading files (project logos) without validating the file type or content. It trusts the extension provided by the user. These files are saved to the uploads/ directory and served statically. An attacker can upload an HTML file containing malicious JavaScript. Since authentication tokens are likely stored in localStorage (as they are returned in the API body), this XSS can lead to account takeover. This issue has been patched in version 4.8.4.
osv:CVE-2026-27605
Complete source record
{
"id": "e7bdbbec433f6431a820be1dbc5e3540382322bd876ae029653efd9557cf0d73",
"url": "https://osv.dev/vulnerability/CVE-2026-27605",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Chartbrew: Stored Cross-Site Scripting (XSS) via File Upload API",
"summary": "Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create charts. Prior to version 4.8.4, the application allows uploading files (project logos) without validating the file type or content. It trusts the extension provided by the user. These files are saved to the uploads/ directory and served statically. An attacker can upload an HTML file containing malicious JavaScript. Since authentication tokens are likely stored in localStorage (as they are returned in the API body), this XSS can lead to account takeover. This issue has been patched in version 4.8.4.",
"evidence": "osv:CVE-2026-27605",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-27605",
"aliases": [
"CVE-2026-27605",
"GHSA-jf6m-hm53-c364"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/chartbrew/chartbrew",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "3c5ac7bb317b314e80680f63dc8ac5a426313623"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "4.8.4"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "3c5ac7bb317b314e80680f63dc8ac5a426313623"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v4.8.4"
},
{
"cpe": "cpe:2.3:a:depomo:chartbrew:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "4.8.4"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v4.8.3",
"v4.8.2",
"v4.8.1",
"v4.8.0",
"v4.7.0",
"v4.6.0",
"v4.5.0",
"v4.4.0",
"v4.3.0",
"v4.2.1",
"v4.2.0",
"v4.1.0",
"v4.0.1",
"v4.0.0",
"v3.13.0",
"v3.12.0",
"v3.11.1",
"v3.11.0",
"v3.10.0",
"v3.9.0",
"v3.8.2",
"v3.8.1",
"v3.8.0",
"v3.7.0",
"v3.6.0",
"v3.5.2",
"v3.5.1",
"v3.5.0",
"v3.3.0",
"v3.2.1",
"v3.2.0",
"v3.1.1",
"v3.1.0",
"v3.0.0",
"v3.0.0-beta.3",
"v3.0.0-beta.2",
"v3.0.0-beta.1",
"v2.8.0",
"v2.7.0",
"v2.6.2",
"v2.6.1",
"v2.6.0",
"v2.5.1",
"v2.5.0",
"v2.4.0",
"v2.3.0",
"v2.2.0",
"v2.1.0",
"v2.0.0",
"v2.0.0-rc.2",
"v2.0.0-rc.1",
"v1.21.1",
"v1.21.0",
"v1.20.2",
"v1.20.1",
"v1.20.0",
"v1.19.1",
"v1.19.0",
"v1.18.1",
"v1.18.0",
"v1.17.2",
"v1.17.1",
"v1.17.0",
"v1.16.2",
"v1.16.1",
"v1.16.0",
"v1.15.0",
"v1.14.2",
"v1.14.1",
"v1.14.0",
"v1.13.0",
"v1.11.1",
"v1.11.0",
"v1.10.0",
"v1.9.3",
"v1.9.2",
"v1.9.1",
"v1.9.0",
"v1.8.1",
"v1.8.0",
"v1.7.1",
"v1.7.0",
"v1.6.2",
"v1.6.1",
"v1.6.0",
"v1.5.3",
"v1.5.1",
"v1.5.0",
"v1.4.0",
"v1.3.1",
"v1.3.0",
"v1.2.0",
"v1.1.1",
"v1.1.0",
"v1.0.0",
"v1.0.0-beta.13",
"v1.0.0-beta.11",
"v1.0.0-beta.10",
"v1.0.0-beta.9.3",
"v1.0.0-beta.9.2",
"v1.0.0-beta.9.1",
"v1.0.0-beta.9",
"v1.0.0-beta.8.1",
"v1.0.0-beta.8",
"v1.0.0-beta.7",
"v1.0.0-beta.6",
"v1.0.0-beta.5.6",
"v1.0.0-beta.5.5",
"v1.0.0-beta.5.4",
"v1.0.0-beta.5.2",
"v1.0.0-beta.5.1",
"v1.0.0-beta.5",
"v1.0.0-beta.4.2",
"v1.0.0-beta.4.1",
"v1.0.0-beta.4",
"v1.0.0-beta.3",
"v1.0.0-beta.2.3",
"v1.0.0-beta.2.2",
"v1.0.0-beta.2.1",
"v1.0.0-beta.2",
"v1.0.0-beta.1.1",
"v1.0.0-beta.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-27605.json"
}
}
],
"modified": "2026-10-28T02:30:37.805254235Z",
"provider": "osv",
"references": [
"https://github.com/chartbrew/chartbrew/releases/tag/v4.8.4",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27605.json",
"https://github.com/chartbrew/chartbrew/security/advisories/GHSA-jf6m-hm53-c364",
"https://nvd.nist.gov/vuln/detail/CVE-2026-27605"
],
"provider_metadata": {
"cwe_ids": [
"CWE-434",
"CWE-79"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27605.json"
}
},
"related_cves": [
{
"value": "CVE-2026-27605",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 505224,
"published_at": "2026-03-06T04:08:01.53+00:00"
}