CVE-2023-49657

9.6 CRITICAL

📋 TL;DR

This stored cross-site scripting (XSS) vulnerability in Apache Superset allows authenticated attackers with create/update permissions to inject malicious scripts into charts or dashboards. When other users view these compromised elements, the attacker's scripts execute in their browser context. This affects all Apache Superset instances before version 3.0.3.

💻 Affected Systems

Products:
  • Apache Superset
Versions: All versions before 3.0.3
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated user with create/update permissions on charts or dashboards. Default configurations are vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal session cookies, perform actions as authenticated users, redirect to malicious sites, or compromise user accounts and data.

🟠

Likely Case

Attackers with legitimate permissions abuse their access to inject scripts that steal session tokens or perform unauthorized actions on behalf of other users.

🟢

If Mitigated

With proper Content Security Policy (CSP) configurations and input validation, script execution would be blocked, limiting impact to potential data corruption.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access but is technically simple once permissions are obtained. Stored XSS payloads persist until removed.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.0.3

Vendor Advisory: https://lists.apache.org/thread/wjyvz8om9nwd396lh0bt156mtwjxpsvx

Restart Required: Yes

Instructions:

1. Upgrade Apache Superset to version 3.0.3 or later. 2. Restart the Superset service. 3. Verify the upgrade completed successfully.

🔧 Temporary Workarounds

Implement Content Security Policy for 2.X versions

all

Add the provided TALISMAN_CONFIG to your Superset configuration to restrict script execution

Add the TALISMAN_CONFIG dictionary to your superset_config.py file

🧯 If You Can't Patch

  • Restrict user permissions to minimize who can create/update charts and dashboards
  • Implement web application firewall (WAF) rules to detect and block XSS payloads

🔍 How to Verify

Check if Vulnerable:

Check your Apache Superset version. If it's below 3.0.3, you are vulnerable.

Check Version:

superset version

Verify Fix Applied:

Verify version is 3.0.3 or higher and test that script injection in chart/dashboard fields is properly sanitized.

📡 Detection & Monitoring

Log Indicators:

  • Unusual chart/dashboard creation/modification patterns
  • JavaScript or HTML snippets in chart/dashboard metadata fields

Network Indicators:

  • Unexpected outbound connections from Superset user sessions
  • Suspicious script loading in HTTP responses

SIEM Query:

source="superset" AND (event="chart_create" OR event="dashboard_update") AND (payload CONTAINS "<script>" OR payload CONTAINS "javascript:")

🔗 References

📤 Share & Export