v4.0.1

xorbitsai/inferencev4.0.1Oct 16, 2026by qinxuye

Upgrading?

AI Summary

This patch release introduces actor transport authentication integration to mitigate CVE-2026-49950 by requiring Xoscar 0.12.0 and configuring a secret key for opt-in HMAC-SHA256 protection.

Key Highlights

  • Actor transport authentication integration
  • Requires Xoscar 0.12.0 or later
  • Opt-in HMAC-SHA256 authentication
  • CVE-2026-49950 mitigation

Breaking Changes

  • Requires Xoscar 0.12.0 or later
  • Authentication disabled by default until XOSCAR_AUTH_KEY is configured
  • Keyed and unkeyed peers cannot communicate after enabling auth

Full Release Notes

# What's new in 4.0.1 (2026-10-16)

This patch release is based on v4.0.0 and backports the actor transport authentication integration from [#5696](https://github.com/xorbitsai/inference/pull/5696).

## Security

* Require **Xoscar 0.12.0 or later** in the Python package and CPU image dependencies. Xoscar 0.12.0 introduces opt-in HMAC-SHA256 authentication of actor messages before Python object deserialization, mitigating the issue described in [CVE-2026-49950](https://github.com/xorbitsai/xoscar/security/advisories/GHSA-mmvj-m246-m9vf).
* Pass the deployment's `XOSCAR_AUTH_KEY` through the standalone and distributed Docker Compose configurations, including all supervisor and worker services.
* Add deployment guidance and translations for all nine existing documentation locales, plus integration coverage for local/distributed communication, authentication rejection, and model-subprocess recovery.

**Actor transport authentication is disabled unless a nonempty `XOSCAR_AUTH_KEY` is configured. Upgrading alone does not enable this protection. HTTP API authentication does not protect actor ports.**

## Upgrade and enable authentication

1. Upgrade every Xinference server to **4.0.1**, or use the corresponding updated container image. Ensure any direct Xoscar actor clients also use Xoscar 0.12.0 or later.
2. Generate **one random secret per deployment**, for example by running the following command once, and distribute it through your secret-management system:

   ```bash
   python -c "import secrets; print(secrets.token_hex(32))"
   ```

3. Set the same generated value before starting `xinference-local`, `xinference-supervisor`, every `xinference-worker`, and any direct actor clients:

   ```bash
   export XOSCAR_AUTH_KEY='<same-random-deployment-secret>'
   ```

   For the supplied Compose configurations, set this value in `.env` or export it before running Compose. Child processes, including model virtual environments, inherit the key. HTTP/REST clients do not need this secret.
4. Coordinate a restart of all actor peers. Keyed and unkeyed peers cannot communicate; enabling or rotating the key requires a coordinated rollout, with no automatic downgrade or mixed-mode rolling upgrade.

Deployment administrators must continue restricting actor ports to intended cluster peers. Anyone holding the shared key is a trusted peer with Python execution privileges. Authentication does not encrypt traffic or prevent replay of captured messages. Authenticated GPU transfers stage device buffers in host memory for hashing, adding CPU and host-memory overhead.

See the [Xinference environment configuration](https://inference.readthedocs.io/en/latest/getting_started/environments.html#xoscar-auth-key) and [Xoscar actor transport authentication documentation](https://xoscar.dev/en/latest/user_guide/actor-pool.html#trust-and-transport-authentication) for details.

**Full Changelog**: https://github.com/xorbitsai/inference/compare/v4.0.0...v4.0.1

Related Repositories