{"id":"CVE-2026-22033","summary":"Label Studio vulnerable to full account takeover by chaining Stored XSS + IDOR in User Profile via custom_hotkeys field","details":"Label Studio is a multi-type data labeling and annotation tool. In 1.22.0 and earlier, a persistent stored cross-site scripting (XSS) vulnerability exists in the custom_hotkeys functionality of the application. An authenticated attacker (or one who can trick a user/administrator into updating their custom_hotkeys) can inject JavaScript code that executes in other users’ browsers when those users load any page using the templates/base.html template. Because the application exposes an API token endpoint (/api/current-user/token) to the browser and lacks robust CSRF protection on some API endpoints, the injected script may fetch the victim’s API token or call token reset endpoints — enabling full account takeover and unauthorized API access.","aliases":["GHSA-2mq9-hm29-8qch","PYSEC-2026-1502"],"modified":"2026-08-12T03:51:11.985872817Z","published":"2026-01-12T17:47:34.060Z","related":["CGA-4rmf-27qm-pcq3"],"database_specific":{"cwe_ids":["CWE-284","CWE-79"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/22xxx/CVE-2026-22033.json","cna_assigner":"GitHub_M"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/22xxx/CVE-2026-22033.json"},{"type":"ADVISORY","url":"https://github.com/HumanSignal/label-studio/security/advisories/GHSA-2mq9-hm29-8qch"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-22033"},{"type":"FIX","url":"https://github.com/HumanSignal/label-studio/commit/ea2462bf042bbf370b79445d02a205fbe547b505"},{"type":"FIX","url":"https://github.com/HumanSignal/label-studio/pull/9084"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/humansignal/label-studio","events":[{"introduced":"0"},{"fixed":"ea2462bf042bbf370b79445d02a205fbe547b505"}],"database_specific":{"source":["CPE_RANGE","REFERENCES"],"cpe":"cpe:2.3:a:humansignal:label_studio:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"0"},{"last_affected":"1.22.0"}]}}],"versions":["v1.4.1","v1.4.0","v1.3.0","v1.2.0","v1.1.1","v1.1.0","v1.0.2","v1.0.1","v1.0.0","v0.9.1.post1","v0.9.1.post0","v0.9.0.post5","v0.9.0.post4","v0.9.0.post3","v0.9.0","v0.8.2","v0.8.1","v0.8.0","v0.7.5.post0","v0.7.3","v0.7.2","v0.7.1","v0.7.0","v0.6.1","v0.6.0","v0.5.1","v0.4.8","v0.4.7","v0.4.6","v0.4.5","v0.4.4","v0.4.0","v0.3.0","v0.2.2","v.0.2.1-8","v.0.2.1-5","v.0.2.1-4","v.0.2.1-3","v.0.2.1-2","v.0.2.0","v.0.1.6","v.0.1.5","v.0.1.4","v.0.1.2","v.0.1.1","v.0.1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-22033.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"}]}