Label Studio allows Cross-Site Scripting (XSS) via GET request to `/projects/upload-example` endpoint
Description
Label Studio is an open source data labeling tool. Prior to version 1.16.0, Label Studio's /projects/upload-example endpoint allows injection of arbitrary HTML through a GET request with an appropriately crafted label_config query parameter. By crafting a specially formatted XML label config with inline task data containing malicious HTML/JavaScript, an attacker can achieve Cross-Site Scripting (XSS). While the application has a Content Security Policy (CSP), it is only set in report-only mode, making it ineffective at preventing script execution. The vulnerability exists because the upload-example endpoint renders user-provided HTML content without proper sanitization on a GET request. This allows attackers to inject and execute arbitrary JavaScript in victims' browsers by getting them to visit a maliciously crafted URL. This is considered vulnerable because it enables attackers to execute JavaScript in victims' contexts, potentially allowing theft of sensitive data, session hijacking, or other malicious actions. Version 1.16.0 contains a patch for the issue.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
label-studioPyPI | < 1.16.0 | 1.16.0 |
Affected products
1- Range: < 1.16.0
Patches
18cf6958e1e27fix: LEAP-1806: deprecate unused upload-example behavior (#7018)
1 file changed · +2 −4
label_studio/projects/views.py+2 −4 modified@@ -36,12 +36,10 @@ def playground_replacements(request, task_data): return task_data -@require_http_methods(['GET', 'POST']) +@require_http_methods(['POST']) def upload_example_using_config(request): """Generate upload data example by config only""" - config = request.GET.get('label_config', '') - if not config: - config = request.POST.get('label_config', '') + config = request.POST.get('label_config', '') org_pk = get_organization_from_request(request) secure_mode = False
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
4- github.com/advisories/GHSA-wpq5-3366-mqw4ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2025-25296ghsaADVISORY
- github.com/HumanSignal/label-studio/commit/8cf6958e1e27ef6a03ed287e674470975d340885ghsax_refsource_MISCWEB
- github.com/HumanSignal/label-studio/security/advisories/GHSA-wpq5-3366-mqw4ghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.