{"id":"PYSEC-2024-249","details":"### Summary\nOn 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.\n\n### Details\nNeed permission to use the \"data import\" function. This was reproduced on Label Studio 1.10.1.\n\n### PoC\n\n1. Create a project.\n![Create a project](https://github.com/HumanSignal/label-studio/assets/3943358/9b1536ad-feac-4238-a1bd-ca9b1b798673)\n\n2. Upload a file containing the payload using the \"Upload Files\" function.\n![2  Upload a file containing the payload using the Upload Files function](https://github.com/HumanSignal/label-studio/assets/3943358/26bb7af1-1cd2-408f-9adf-61e31a5b7328)\n![3  complete](https://github.com/HumanSignal/label-studio/assets/3943358/f2f62774-1fa6-4456-9e6f-8fa1ca0a2d2e)\n\nThe following are the contents of the files used in the PoC\n```\n{\n  \"data\": {\n    \"prompt\": \"labelstudio universe image\",\n    \"images\": [\n      {\n        \"value\": \"id123#0\",\n        \"style\": \"margin: 5px\",\n        \"html\": \"\u003cimg width='400' src='https://labelstud.io/_astro/images-tab.64279c16_ZaBSvC.avif' onload=alert(document.cookie)\u003e\"\n      }\n    ]\n  }\n}\n```\n\n3. Select the text-to-image generation labeling template of Ranking and scoring\n![3  Select the text-to-image generation labelling template for Ranking and scoring](https://github.com/HumanSignal/label-studio/assets/3943358/f227f49c-a718-4738-bc2a-807da4f97155)\n![5  save](https://github.com/HumanSignal/label-studio/assets/3943358/9b529f8a-8e99-4bb0-bdf6-bb7a95c9b75d)\n\n4. Select a task\n![4  Select a task](https://github.com/HumanSignal/label-studio/assets/3943358/71856b7a-2b1f-44ea-99ab-fc48bc20caa7)\n\n5. Check that the script is running\n![5  Check that the script is running](https://github.com/HumanSignal/label-studio/assets/3943358/e396ae7b-a591-4db7-afe9-5bab30b48cb9)\n\n### Impact\nMalicious 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.\n","aliases":["CVE-2024-26152","GHSA-6xv9-957j-qfhg"],"modified":"2026-02-05T05:07:20.968793Z","published":"2024-02-22T22:15:47Z","related":["GHSA-6xv9-957j-qfhg"],"references":[{"type":"ADVISORY","url":"https://github.com/HumanSignal/label-studio/security/advisories/GHSA-6xv9-957j-qfhg"},{"type":"EVIDENCE","url":"https://github.com/HumanSignal/label-studio/security/advisories/GHSA-6xv9-957j-qfhg"},{"type":"FIX","url":"https://github.com/HumanSignal/label-studio/commit/5df9ae3828b98652e9fa290a19f4deedf51ef6c8"},{"type":"FIX","url":"https://github.com/HumanSignal/label-studio/pull/5232"},{"type":"WEB","url":"https://github.com/HumanSignal/label-studio/releases/tag/1.11.0"}],"affected":[{"package":{"name":"label-studio","ecosystem":"PyPI","purl":"pkg:pypi/label-studio"},"ranges":[{"type":"GIT","repo":"https://github.com/humansignal/label-studio","events":[{"introduced":"0"},{"fixed":"5df9ae3828b98652e9fa290a19f4deedf51ef6c8"},{"fixed":"5df9ae3828b98652e9fa290a19f4deedf51ef6c8"}]},{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.0"}]}],"versions":["0.4.1","0.4.2","0.4.3","0.4.4","0.4.4.post1","0.4.4.post2","0.4.5","0.4.6","0.4.6.post1","0.4.6.post2","0.4.7","0.4.8","0.5.0","0.5.1","0.6.0","0.6.1","0.7.0","0.7.1","0.7.2","0.7.3","0.7.4","0.7.4.post0","0.7.4.post1","0.7.5.post1","0.7.5.post2","0.8.0","0.8.0.post0","0.8.1","0.8.1.post0","0.8.2","0.8.2.post0","0.9.0","0.9.0.post2","0.9.0.post3","0.9.0.post4","0.9.0.post5","0.9.1","0.9.1.post0","0.9.1.post1","0.9.1.post2","1.0.0","1.0.0.post0","1.0.0.post1","1.0.0.post2","1.0.0.post3","1.0.1","1.0.2","1.0.2.post0","1.1.0","1.1.0rc0","1.1.1","1.10.0","1.10.0.post0","1.10.1","1.2","1.3","1.3.post0","1.3.post1","1.4","1.4.1","1.4.1.post0","1.4.1.post1","1.5.0","1.5.0.post0","1.6.0","1.7.0","1.7.1","1.7.2","1.7.3","1.8.0","1.8.1","1.8.2","1.8.2.post0","1.8.2.post1","1.9.0","1.9.1","1.9.1.post0","1.9.2","1.9.2.post0"],"database_specific":{"source":"https://github.com/pypa/advisory-database/blob/main/vulns/label-studio/PYSEC-2024-249.yaml"}}],"schema_version":"1.7.3","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}]}