Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged member
-
DeliveryImport task with internal data.image URL
-
ExploitRequest YOLO_WITH_IMAGES or COCO_WITH_IMAGES export
-
ExecutionServer fetches internal URL unchecked
-
ImpactRead response body from export archive
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated account of any role (PR:L) that can create a project and import a task - no admin action and no storage registration is needed, since data.image accepts an absolute attacker-supplied URL. The export MUST use an image-bearing format that forces resource download: YOLO_WITH_IMAGES, YOLO_OBB_WITH_IMAGES, or COCO_WITH_IMAGES; the advisory notes that plain YOLO even with download_resources=true downloads nothing because the format overrides the flag, so this is a concrete limiting factor. The core full-read SSRF needs no configuration toggles. The organization-owner token-disclosure variant additionally requires: spoofing the Host header so its netloc matches the task URL's netloc (possible because ALLOWED_HOSTS defaults to '*'), plus a header credential (a JWT obtained via POST /api/token/ then /api/token/refresh/) because spoofing Host invalidates session-cookie auth and returns 401. A further limiting factor on replay: the leaked token is only usable for authentication if legacy_api_tokens_enabled is turned on, which is off by default, so on a stock instance the disclosed token is inert unless/until an operator enables that setting. |
| Impact | This is a genuine but mid-tier priority, not a drop-everything emergency, and the signals are mostly consistent. The input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) describes a network-reachable, low-complexity flaw requiring an authenticated low-privileged account; impact is split as VC:L on Label Studio itself but SC:H on the internal systems reached through the SSRF, which is why this is a full-read (not blind) SSRF with a credible internal-exposure consequence. The vuln.today decision label is 'this_month' rather than act_now/emergency, and the input supplies no EPSS score and no CISA KEV listing, so there is no evidence of active exploitation or mass scanning. A detailed, vendor-tested reproduction exists in the GHSA advisory (full attack walkthrough against label-studio 1.23.0), which raises practical exploitability for any attacker who already holds an account. The one tension to flag explicitly: the SSRF itself reproduces on default settings and is a real confidentiality risk, but the headline credential-disclosure variant leaks the organization owner's long-lived API token to an attacker-chosen host on default settings YET that token is rejected at authentication while legacy_api_tokens_enabled stays at its default of False - so the leaked secret is currently inert and only becomes retroactively replayable if an operator later enables legacy tokens. Net: patch this month; treat the SSRF as the live risk and the token leak as a latent, configuration-gated one. |
| Exploit ScenarioDerived | An authenticated low-privileged member creates their own project, imports a task whose data.image points at an internal target (for example a cloud metadata endpoint or an internal admin interface), then requests an image-bearing export (YOLO_WITH_IMAGES or COCO_WITH_IMAGES); the Label Studio server fetches that URL with no destination validation and returns the raw response body inside the ZIP the attacker downloads. By additionally spoofing the Host header (ALLOWED_HOSTS defaults to '*') and authenticating with a JWT instead of a session cookie, the same export causes the organization owner's API token to be sent to the attacker's collector. A detailed, vendor-tested public PoC reference exists in the GHSA advisory; it is a step-by-step reproduction, not verified as packaged standalone exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
Authenticated users of Label Studio can turn the export converter into a full-read SSRF primitive: importing a task whose data.image points at an internal service and then requesting an export in YOLO_WITH_IMAGES, YOLO_OBB_WITH_IMAGES or COCO_WITH_IMAGES makes the server issue an HTTP GET to the attacker-chosen URL and write the response bytes into the ZIP the same user downloads, giving back the body rather than a blind probe. The same request can additionally leak the organization owner's long-lived API token to an attacker-controlled host when the Host header is spoofed so its netloc matches the task URL (ALLOWED_HOSTS defaults to '*'), though on a stock instance that token is inert while legacy_api_tokens_enabled stays off. Affected are Label Studio before 1.23.2 and label-studio-sdk before 2.1.2; the GitHub advisory contains a step-by-step proof-of-concept reproduction, and the issue is not listed in CISA KEV, so this is a genuine but mid-tier, this-month priority rather than an emergency.
RemediationAI
Vendor-released patch: upgrade Label Studio to 1.23.2 and label-studio-sdk to 2.1.2 (fix commits df96d79183156e556d91825d15fa7721f1145e1a and c20c899aaaa302740dacd46a47e5774bb677561f, advisory GHSA-6437-7wc6-gmx5). Note that the new converter_http_session() returns an SSRF-safe session only when SSRF_PROTECTION_ENABLED is enabled, and get_export_hostname() returns None whenever ALLOWED_HOSTS still contains '*' and DOMAIN_FROM_REQUEST is false - so after patching, enable SSRF_PROTECTION_ENABLED and pin ALLOWED_HOSTS (or set HOSTNAME / DOMAIN_FROM_REQUEST behind a proxy) or the export path keeps using plain requests and the token comparison keeps trusting a Host header, at the cost that the converter will skip media it would otherwise fetch from Label Studio's own address, which can leave images out of exports on self-hosted installs whose own hostname resolves to a private address. Keep legacy_api_tokens_enabled at its default of False, since enabling it retroactively makes every previously leaked owner token replayable. If patching must wait, restrict who may create projects and request image-bearing exports and block the YOLO_WITH_IMAGES, YOLO_OBB_WITH_IMAGES and COCO_WITH_IMAGES formats at the proxy - the trade-off is losing annotated image exports entirely - and egress-filter the Label Studio server away from cloud metadata endpoints and internal admin ranges, acknowledging that such filtering is a partial control because the converter still follows arbitrary URLs the filter does not enumerate.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is CWE-918 (server-side request forgery) on the media-download path used by Label Studio's data export, combined with CWE-201 (insertion of sensitive information into sent data) on the credential-attachment path. Any member can create a project and import a task whose data.image is an absolute URL; no storage registration or admin action is required. When an image-bearing export is requested, label_studio/data_export/models.py constructs the SDK Converter with access_token set to the organization owner's auth_token and hostname derived from request.build_absolute_uri('/'), and the converter calls get_local_path() into label_studio_sdk's _extensions/label_studio_tools/core/utils/io.py, where download_and_cache() performs requests.get(url, stream=True, headers=headers) with no destination validation - the module contains no SSRF, URL-validation or private-IP checks. The existing SSRF_PROTECTION_ENABLED hardening (validate_upload_url / ssrf_safe_get) covers the import sink, webhooks and S3 storage endpoints but not data_export or the SDK converter. The token-disclosure variant comes from _build_headers(), which attaches 'Authorization: Token/Bearer <owner token>' whenever urlparse(target_url).netloc equals urlparse(hostname).netloc; both sides are attacker-influenced because the target comes from the task and the hostname from the Host header, which ALLOWED_HOSTS=['*'] permits. Spoofing Host invalidates session-cookie auth (the export returns 401), so the attacker needs a header credential such as a JWT minted via POST /api/token/ and exchanged at POST /api/token/refresh/. The disclosed token cannot be replayed for authentication while legacy_api_tokens_enabled remains at its default of False. The export format is a hard prerequisite: converter.py overrides the caller's download_resources flag from the format, so YOLO_WITH_IMAGES, YOLO_OBB_WITH_IMAGES or COCO_WITH_IMAGES are required and plain YOLO with download_resources=true downloads nothing. The upstream fix adds a get_export_hostname() helper, a converter_http_session() that returns an SSRF-safe session (with a trusted_origin exemption for Label Studio's own host) only when SSRF_PROTECTION_ENABLED is on, and a ContextVar-scoped http_session in the SDK so every download in the converter goes through http_get().
Know when Label Studio gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:H/SI:N/SA:N
Authenticated low-priv member (PR:L) over network (AV:N), no special trigger conditions (AC:L); SSRF crosses into internal systems (S:C) disclosing their responses (C:H), with no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Label Studio before 1.23.2 (label-studio-sdk before 2.1.2) contains a server-side request forgery vulnerability that allows authenticated users to read internal URLs through image-bearing export formats. Attackers can import tasks with data.image pointing at internal services, export as YOLO or COCO with images to read responses, and spoof Host to capture the organization owner's API token.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
More in Label Studio
View allLabel Studio is an open source data labeling tool. Rated medium severity (CVSS 6.1), this vulnerability is remotely expl
Label Studio is a multi-type data labeling and annotation tool with standardized output format. Rated high severity (CVS
Label Studio is an open source data labeling tool. Rated high severity (CVSS 8.6), this vulnerability is remotely exploi
Label Studio is a multi-type data labeling and annotation tool. Rated high severity (CVSS 7.6), this vulnerability is re
A Server Side Request Forgery (SSRF) in the Data Import module in Heartex - Label Studio Community Edition versions 1.5.
Label Studio is an open source data labeling tool. Rated high severity (CVSS 7.5), this vulnerability is remotely exploi
### Summary On all Label Studio versions prior to 1.11.0, data imported via file upload feature is not properly sanitize
Stored XSS in Label Studio's custom_hotkeys feature allows authenticated attackers to inject malicious JavaScript that e
Cross-organization IDOR in Label Studio allows any authenticated user on a shared instance to read, modify, and delete a
Server-side request forgery in Label Studio through 1.23.0 allows authenticated users to route outbound webhook requests
Cross-tenant cloud storage object access in Label Studio through 1.23.0 allows an authenticated low-privilege user to re
Server-side request forgery in HumanSignal Label Studio through 1.24.0.dev0 allows authenticated users to direct the ser
EUVD-2026-115906
GHSA-m949-r65c-x2m9
NVD
CVE.org
Exploit-DB