CVE-2026-27605

6.3 MEDIUM

📋 TL;DR

Chartbrew versions before 4.8.4 have a stored cross-site scripting (XSS) vulnerability in file upload functionality. Attackers can upload malicious HTML files containing JavaScript, which when served to users can steal authentication tokens from localStorage, potentially leading to account takeover. All Chartbrew instances using vulnerable versions are affected.

💻 Affected Systems

Products:
  • Chartbrew
Versions: All versions prior to 4.8.4
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default file upload functionality for project logos without any special configuration required.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete account takeover leading to unauthorized access to connected databases/APIs, data theft, and potential lateral movement within the environment.

🟠

Likely Case

Session hijacking and account compromise for users who access the malicious uploaded file, potentially exposing sensitive chart data and database credentials.

🟢

If Mitigated

Limited impact with proper file validation and content security policies in place, though authentication tokens remain at risk if accessed.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access to upload files, but the attack chain is straightforward once initial access is obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 4.8.4

Vendor Advisory: https://github.com/chartbrew/chartbrew/security/advisories/GHSA-jf6m-hm53-c364

Restart Required: Yes

Instructions:

1. Backup your Chartbrew instance and database. 2. Update to version 4.8.4 or later using your deployment method (Docker, manual, etc.). 3. Restart the application. 4. Verify the update was successful.

🔧 Temporary Workarounds

Disable file uploads

all

Temporarily disable project logo upload functionality in Chartbrew configuration

Modify Chartbrew configuration to remove or disable file upload endpoints

Implement web server file type restrictions

linux

Configure web server (nginx/apache) to block serving HTML files from uploads directory

Add location block in nginx: location ~* \.html$ { deny all; }
Add to Apache .htaccess: <FilesMatch "\.html$"> Order Allow,Deny Deny from all </FilesMatch>

🧯 If You Can't Patch

  • Implement strict Content Security Policy (CSP) headers to prevent JavaScript execution from uploaded files
  • Regularly audit and delete suspicious files from uploads/ directory

🔍 How to Verify

Check if Vulnerable:

Check Chartbrew version via web interface or API, or examine package.json for version number

Check Version:

Check package.json: cat package.json | grep version, or via API: curl -s http://chartbrew-instance/api/version

Verify Fix Applied:

Attempt to upload an HTML file with .html extension - should be rejected or sanitized

📡 Detection & Monitoring

Log Indicators:

  • File uploads with .html extensions
  • Unusual file upload patterns to uploads/ endpoint
  • Multiple failed upload attempts

Network Indicators:

  • HTTP requests to uploads/*.html files
  • Unusual outbound connections following file access

SIEM Query:

source="chartbrew" AND (uri_path="/api/upload" OR uri_path LIKE "/uploads/%.html")

🔗 References

📤 Share & Export