{"id":"CVE-2023-49657","kind":"vulnerability","aliases":["CVE-2023-49657","GHSA-rwhh-6x83-84v6"],"related":[],"title":"Cross-site Scripting in Apache superset","description":"A stored cross-site scripting (XSS) vulnerability exists in Apache Superset before 3.0.3. An authenticated attacker with create/update permissions on charts or dashboards could store a script or add a specific HTML snippet that would act as a stored XSS.\n\nFor 2.X versions, users should change their config to include:\n\nTALISMAN_CONFIG = {\n    \"content_security_policy\": {\n        \"base-uri\": [\"'self'\"],\n        \"default-src\": [\"'self'\"],\n        \"img-src\": [\"'self'\", \"blob:\", \"data:\"],\n        \"worker-src\": [\"'self'\", \"blob:\"],\n        \"connect-src\": [\n            \"'self'\",\n            \" https://api.mapbox.com\" https://api.mapbox.com\" ;,\n            \" https://events.mapbox.com\" https://events.mapbox.com\" ;,\n        ],\n        \"object-src\": \"'none'\",\n        \"style-src\": [\n            \"'self'\",\n            \"'unsafe-inline'\",\n        ],\n        \"script-src\": [\"'self'\", \"'strict-dynamic'\"],\n    },\n    \"content_security_policy_nonce_in\": [\"script-src\"],\n    \"force_https\": False,\n    \"session_cookie_secure\": False,\n}","summary":"Apache Superset before 3.0.3 lets a user with chart or dashboard create/update permission store a script or crafted HTML snippet that runs in other users' browsers. An attacker can act as the victim inside Superset, such as reading or changing data the victim can see.","severity":"critical","cvss":9.6,"epss":0.00837,"exploited":false,"exploited_at":null,"products":[{"name":"apache-superset","fixed":["3.0.3"],"affected":"< 3.0.3","ecosystem":"pypi"},{"name":"apache superset","fixed":["3.0.3"],"affected":"< 3.0.3","ecosystem":"vendor"}],"ecosystems":["pypi","vendor"],"tags":["apache-superset","cwe-79","package","python","self-hosted"],"not_affected_if":["fixed-version","read-only-users"],"how_to_check":"- Check the installed version: `pip show apache-superset`, and confirm it is below `3.0.3`.\n- On 2.x, check whether `TALISMAN_CONFIG` in `superset_config.py` sets the content_security_policy shown in the advisory.","fix":"- Upgrade `apache-superset` to `3.0.3` or later.\n- On 2.x, where an upgrade is not possible, apply the `TALISMAN_CONFIG` content security policy from the advisory (the sample in the source has broken quoting and must be corrected before use).","status":"open","published_at":"2024-01-23T15:15:11+00:00","first_seen_at":"2026-10-27T15:18:30+00:00","triaged_at":"2026-10-27T15:19:05+00:00","updated_at":"2026-10-27T15:32:59+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-27T15:19:05Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade `apache-superset` to `3.0.3` or later.\n- On 2.x, where an upgrade is not possible, apply the `TALISMAN_CONFIG` content security policy from the advisory (the sample in the source has broken quoting and must be corrected before use).","reach":"internet","title":"Apache Superset: stored XSS via charts and dashboards for editors","impact":"medium","summary":"Apache Superset before 3.0.3 lets a user with chart or dashboard create/update permission store a script or crafted HTML snippet that runs in other users' browsers. An attacker can act as the victim inside Superset, such as reading or changing data the victim can see.","category":"package","nicknames":[],"who_cares":["apache-superset","self-hosted","python"],"confidence":0.8,"needs_auth":"yes","worst_case":"Stored script runs in other users' browsers, acting as them in Superset","analyst_note":"","how_to_check":"- Check the installed version: `pip show apache-superset`, and confirm it is below `3.0.3`.\n- On 2.x, check whether `TALISMAN_CONFIG` in `superset_config.py` sets the content_security_policy shown in the advisory.","needs_analyst":false,"not_affected_if":["fixed-version","read-only-users"],"who_is_affected":"Teams running self-hosted Apache Superset versions before 3.0.3 where some users can create or edit charts or dashboards. The exposure comes from stored content that other users then view. Instances where every user is read-only on charts and dashboards, or that are on 3.0.3 or later, are not affected by this flaw.","user_interaction":"yes","needs_special_setup":"no","severity_if_unknown":"critical"},"cost_usd":0.000661,"input_tokens":3649,"output_tokens":592,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-2023':9A,17A '-49657':10A,18A '-79':28B '2':121C '3.0.3':37B,92C '6x83':14A '84v6':15A 'act':63B,115C 'add':108C 'apach':6A,25B,34B,89C 'apache':20A,22A 'apache-superset':19A,24B 'api.mapbox.com':159C,160C 'attack':61B,95C 'authent':94C 'base':137C 'base-uri':136C 'blob':148C,154C 'browser':59B 'chang':73B,126C 'chart':42B,100C 'config':128C,132C 'connect':156C 'connect-src':155C 'content':133C,181C 'cooki':193C 'could':103C 'craft':51B 'create/update':45B,97C 'cross':2A,82C 'cross-sit':1A,81C 'cve':8A,16A 'cwe':27B 'dashboard':44B,102C 'data':74B,149C 'default':141C 'default-src':140C 'dynam':180C 'events.mapbox.com':161C,162C 'exist':87C 'fals':191C,195C 'forc':189C 'ghsa':12A 'ghsa-rwhh-6x83-84v6':11A 'host':33B 'html':52B,111C 'https':190C 'img':145C 'img-src':144C 'includ':130C 'inlin':173C 'insid':67B 'let':38B 'nonc':184C 'none':166C 'object':164C 'object-src':163C 'packag':29B 'permiss':46B,98C 'polici':135C,183C 'python':30B 'read':71B 'run':55B 'rwhh':13A 'script':4A,49B,84C,106C,175C,187C 'script-src':174C,186C 'secur':134C,182C,194C 'see':78B 'self':32B,139C,143C,147C,153C,158C,170C,177C 'self-host':31B 'session':192C 'site':3A,83C 'snippet':53B,112C 'specif':110C 'src':142C,146C,152C,157C,165C,169C,176C,188C 'store':47B,80C,104C,118C 'strict':179C 'strict-dynam':178C 'style':168C 'style-src':167C 'superset':7A,21A,23A,26B,35B,68B,90C 'talisman':131C 'unsaf':172C 'unsafe-inlin':171C 'uri':138C 'user':40B,58B,124C 'version':123C 'victim':66B,76B 'vulner':86C 'worker':151C 'worker-src':150C 'would':114C 'x':122C 'xss':85C,119C","nicknames":[],"mitigations":[],"who_affected":"Teams running self-hosted Apache Superset versions before 3.0.3 where some users can create or edit charts or dashboards. The exposure comes from stored content that other users then view. Instances where every user is read-only on charts and dashboards, or that are on 3.0.3 or later, are not affected by this flaw.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2024-01-23T15:15:11+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N","cvss_by":"GitHub","poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-rwhh-6x83-84v6","url":"https://github.com/advisories/GHSA-rwhh-6x83-84v6","severity":"critical","published_at":"2024-01-23T15:30:58+00:00","modified_at":"2026-10-27T15:13:34+00:00","first_seen_at":"2026-10-27T15:18:30+00:00","fetched_at":"2026-10-27T15:18:30+00:00","note":null},{"source":"nvd","external_id":"CVE-2023-49657","url":"https://nvd.nist.gov/vuln/detail/CVE-2023-49657","severity":null,"published_at":"2024-01-23T15:15:11+00:00","modified_at":"2026-06-17T06:36:17+00:00","first_seen_at":"2026-10-27T15:32:59+00:00","fetched_at":"2026-10-27T15:32:59+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}