PYSEC-2024-249
Details
### Summary On all Label Studio versions prior to 1.11.0, data imported via file upload feature is not properly sanitized prior to being rendered within a [`Choices`](https://labelstud.io/tags/choices) or [`Labels`](https://labelstud.io/tags/labels) tag, resulting in an XSS vulnerability.
### Details Need permission to use the "data import" function. This was reproduced on Label Studio 1.10.1.
### PoC
1. Create a project. 
2. Upload a file containing the payload using the "Upload Files" function.  
The following are the contents of the files used in the PoC ``` { "data": { "prompt": "labelstudio universe image", "images": [ { "value": "id123#0", "style": "margin: 5px", "html": "<img width='400' src='https://labelstud.io/_astro/images-tab.64279c16_ZaBSvC.avif' onload=alert(document.cookie)>" } ] } } ```
3. Select the text-to-image generation labeling template of Ranking and scoring  
4. Select a task 
5. Check that the script is running 
### Impact Malicious scripts can be injected into the code, and when linked with vulnerabilities such as CSRF, it can cause even greater damage. In particular, It can become a source of further attacks, especially when linked to social engineering.
Are you affected?
Enter the version of the package you're using.
Affected packages
0 Fixed in: 5df9ae3828b98652e9fa290a19f4deedf51ef6c8 pip install --upgrade 'label-studio>=5df9ae3828b98652e9fa290a19f4deedf51ef6c8' References
- https://github.com/HumanSignal/label-studio/security/advisories/GHSA-6xv9-957j-qfhg [ADVISORY]
- https://github.com/HumanSignal/label-studio/security/advisories/GHSA-6xv9-957j-qfhg [EVIDENCE]
- https://github.com/HumanSignal/label-studio/commit/5df9ae3828b98652e9fa290a19f4deedf51ef6c8 [FIX]
- https://github.com/HumanSignal/label-studio/pull/5232 [FIX]
- https://github.com/HumanSignal/label-studio/releases/tag/1.11.0 [WEB]
- https://github.com/advisories/GHSA-6xv9-957j-qfhg [ADVISORY]