v0.19.0

alibaba/MNNv0.19.0Aug 6, 2026by korridor

AI Summary

This release includes a security fix for Host header handling to prevent Host header poisoning and introduces trusted host validation middleware. It also includes a bug fix for an invoice tax rate issue.

Key Highlights

  • Security fix for Host header handling to prevent poisoning
  • Adds `TRUSTED_HOSTS` environment variable for custom hostname configuration
  • Default behavior now restricts requests to the hostname configured in `APP_URL`
  • Fixes invoice tax rate calculation

Breaking Changes

  • Default behavior now restricts requests to the hostname configured in `APP_URL`, rejecting other hostnames with HTTP 400
  • Instance will not work properly if `APP_URL` is not set correctly before updating

New Features

  • Trusted host validation middleware
  • Support for custom trusted hostnames via `TRUSTED_HOSTS` environment variable
  • Support for wildcard subdomains in `TRUSTED_HOSTS` configuration

Full Release Notes

> [!IMPORTANT]
> This release includes a security fix for Host header handling.
>
> The issue only affects setups where requests can reach solidtime with arbitrary `Host` headers, for example when a reverse proxy forwards unvalidated Host headers or when no reverse proxy is used.
>
> solidtime Cloud and our [recommended Traefik setup](https://github.com/solidtime-io/self-hosting-examples/tree/main/0-docker-traefik-with-database) are not affected.
>
> Affected self-hosted installations should upgrade as soon as possible.

> [!CAUTION]
> Make sure your `APP_URL` is set correctly before updating, otherwise the solidtime instance will not work properly

## What's Changed

* Add trusted host validation middleware to prevent Host header poisoning. Thanks to @tonghuaroot for the [security report](https://github.com/solidtime-io/solidtime/security/advisories/GHSA-rf33-hmh9-h593)
* Fixed invoice tax rate by @korridor in https://github.com/solidtime-io/solidtime/pull/1184

## For self-hosting

This release adds host validation based on `APP_URL`.

By default, solidtime now only accepts requests for the hostname configured in `APP_URL` and its subdomains. Requests for other hostnames are rejected with HTTP 400.

If your instance is intentionally reachable through additional hostnames, configure the new `TRUSTED_HOSTS` environment variable:
```env
APP_URL=https://solidtime.example.com
TRUSTED_HOSTS=solidtime.internal,solidtime.tailnet-name.ts.net
```
Wildcard subdomains are supported:
```env
TRUSTED_HOSTS=*.example.com
```
No database migrations are included in this release.

**Full Changelog**: https://github.com/solidtime-io/solidtime/compare/v0.18.0...v0.19.0