1.23.1

HumanSignal/label-studio1.23.1Sep 25, 2026by robot-ci-heartex

Upgrading?

AI Summary

This security-focused patch release introduces stricter protections for ML backends and webhooks while requiring PostgreSQL 14 or higher. It also enforces new secure default configurations for network access and error handling.

Key Highlights

  • Requires PostgreSQL 14 or higher to support Django 5.2
  • New SSRF protection blocks outbound requests to private or local network addresses
  • Introduces new secure defaults for ML blocking and debug exceptions
  • Tighter permission checks for creating storages and deleting users
  • Improved HTML sanitization in the labeling interface

Breaking Changes

  • PostgreSQL 14 or higher is now required
  • SSRF protection defaults to blocking private/local networks
  • ML backends on localhost are blocked by default
  • Debug exceptions are disabled by default in the UI

New Features

  • New secure default configuration for SSRF protection
  • New secure default configuration for ML backend blocking
  • Improved HTML sanitization in the labeling interface
  • Enhanced permission checks for storage and ML backend management

Full Release Notes

### This is a security-focused patch release. Please read the upgrade notes before you upgrade.

## ⚠️ Upgrade notes

- **PostgreSQL 14 or higher is now required.** Label Studio now runs on Django 5.2, which doesn't support PostgreSQL 13 or older.
- **New secure defaults:**
  - `SSRF_PROTECTION_ENABLED=true`: outbound requests to private or local network addresses are blocked. This affects URL imports, webhooks, S3-compatible endpoints, and Redis storage.
  - `ML_BLOCK_LOCAL_IP=true`: ML backends on `localhost` or a private network are blocked.
  - `DEBUG_MODAL_EXCEPTIONS=false`: error details are no longer shown in the UI.

  If your ML backend, MinIO, Redis, or webhook receiver runs on a local or private network, set `SSRF_PROTECTION_ENABLED=false` and/or `ML_BLOCK_LOCAL_IP=false`. Alternatively, keep the protection on and change the blocked ranges with `USE_DEFAULT_BANNED_SUBNETS` and `USER_ADDITIONAL_BANNED_SUBNETS`.

## Security

- Stronger SSRF protection for ML backends, webhooks, cloud storage, and URL imports.
- Tighter permission checks when you create storages, webhooks, and ML backends, and when you delete users.
- Fixed access checks for local file storage and Data Manager filters.
- Improved HTML sanitization in the labeling interface.

Related Repositories