CVE-2025-25297

8.6 HIGH

📋 TL;DR

Label Studio versions before 1.16.0 contain a Server-Side Request Forgery (SSRF) vulnerability in the S3 storage integration feature. Attackers can exploit this by specifying arbitrary internal service URLs as S3 endpoints, allowing them to bypass network segmentation and access internal services. This affects all deployments using the S3 storage feature with unpatched versions.

💻 Affected Systems

Products:
  • Label Studio
Versions: All versions prior to 1.16.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects deployments using the S3 storage integration feature. The vulnerability requires attacker access to configure S3 storage connections.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete internal network reconnaissance and data exfiltration from sensitive internal services, potentially including credentials, configuration data, or proprietary information.

🟠

Likely Case

Internal service enumeration and limited data exfiltration from misconfigured or vulnerable internal services accessible to the Label Studio server.

🟢

If Mitigated

Limited impact due to network segmentation, but still potential for internal service discovery and limited data leakage.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires authenticated access to configure S3 storage connections. The vulnerability is straightforward to exploit once access is obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.16.0

Vendor Advisory: https://github.com/HumanSignal/label-studio/security/advisories/GHSA-m238-fmcw-wh58

Restart Required: No

Instructions:

1. Update Label Studio to version 1.16.0 or later using pip: 'pip install label-studio>=1.16.0' 2. Verify the update completed successfully 3. No restart required for the patch itself

🔧 Temporary Workarounds

Disable S3 Storage Feature

all

Temporarily disable the S3 storage integration feature if not required for operations

Configure Label Studio to use local storage only or disable S3 storage configuration in admin interface

Restrict S3 Endpoint Configuration

all

Implement input validation to restrict S3 endpoint URLs to known AWS endpoints only

Implement custom validation in S3 configuration to only allow *.amazonaws.com domains

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate Label Studio from sensitive internal services
  • Deploy web application firewall (WAF) rules to detect and block SSRF attempts

🔍 How to Verify

Check if Vulnerable:

Check Label Studio version: if version < 1.16.0 and S3 storage feature is enabled, the system is vulnerable

Check Version:

python -c "import label_studio; print(label_studio.__version__)"

Verify Fix Applied:

Verify version is 1.16.0 or higher and test S3 endpoint configuration with non-AWS URLs to ensure they are rejected

📡 Detection & Monitoring

Log Indicators:

  • Unusual S3 endpoint URLs in configuration logs
  • HTTP requests to internal IP addresses from Label Studio process
  • Error messages containing response data from non-S3 services

Network Indicators:

  • Outbound HTTP requests from Label Studio to internal network segments
  • Traffic to non-standard ports from Label Studio process

SIEM Query:

source="label-studio" AND (url="*://10.*" OR url="*://192.168.*" OR url="*://172.16.*")

🔗 References

📤 Share & Export