Change kv content-type to text/plain #7467
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
CATEGORY
Choose one
SUMMARY
Superset provides endpoints for storing and retrieving key-value pairs from database storage. For example, /explore/kv/store takes a data POST parameter for an arbitrary string to store and returns the corresponding key, which is a simple integer counter. To retrieve the saved data, users issue a GET request to /explore/kv/. The application returns the associated value with the response Content-Type set to text/html, meaning it is possible for users to construct arbitrary HTML pages.
The attacker can simply create another key-value pair with JavaScript source code in the value and include it from the constructed HTML page. Since the script source comes from the same origin as the HTML page, the CSP permits the browser to execute it
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
TEST PLAN
Tested that the value returned is text/plain
ADDITIONAL INFORMATION
REVIEWERS