v2026.09.09

OpenMOSS/MOSS-TTS-Nanov2026.09.09Sep 8, 2026by knu

Upgrading?

AI Summary

This security and feature release introduces outbound proxy enforcement to prevent Agents from accessing internal addresses, hardens deployment defaults, and improves Scenario import validation.

Key Highlights

  • Outbound proxy support via Smokescreen to block loopback and private network requests.
  • Scenario imports now have timeouts, size limits, and follow redirects.
  • Agents now honor `http_proxy` environment variable.
  • Docker images generate random secrets instead of shipping fixed ones.

Breaking Changes

  • TwitterStreamAgent is retired; new Agents cannot be created using this type.
  • Agents cannot use the per-Agent `proxy` option while a proxy is enforced.

New Features

  • Scenario import validation and error reporting improvements.
  • Random secret generation for Docker containers and admin users.
  • Devi's paranoid mode enabled for password reset forms.

Full Release Notes

# v2026.09.09

This release adds a way to keep Agents from reaching internal addresses on shared instances, and hardens several defaults.

Agents that fetch URLs and the Scenario import form request whatever URL a user configures, so on an instance where untrusted users can create Agents, any user could make the server connect to loopback, private-network or cloud metadata addresses.  Huginn can now route every outbound HTTP(S) request through an egress proxy that refuses such destinations at connection time: set `OUTBOUND_PROXY` to a proxy of your own, or set `ENABLE_SMOKESCREEN=true` with the official Docker images, which bundle Smokescreen and configure it automatically.  The per-Agent `proxy` option is refused while a proxy is enforced.  Operators of instances with untrusted users should enable this; single-user instances need not.  Agents speaking FTP, IMAP, MQTT or XMPP are not covered.  See doc/manual/outbound-requests.md.

Other changes:

- Scenario imports by URL have a timeout and a size limit, follow redirects, and report any fetch failure as a validation error instead of a server error.
- Agents without a `proxy` option now honor `http_proxy` on the `net_http` backend, which they previously ignored.
- The Docker configurations no longer ship a fixed `APP_SECRET_TOKEN`.  A random one is generated on container start unless `APP_SECRET_TOKEN` is set; set it yourself to keep sessions valid across container restarts.  Deployments still supplying the previously shipped value get a warning and a generated secret instead.
- `rake db:seed` generates a random admin password and prints it once unless `SEED_PASSWORD` is set.
- DataOutputAgent and LiquidOutputAgent get a random default secret.
- Devise paranoid mode is enabled, so the password reset, unlock and confirmation forms no longer reveal whether an account exists.
- TwitterStreamAgent is retired, as the Twitter streaming API it depended on was shut down in 2023.  Existing Agents remain loadable but new ones cannot be created.
- Building a Docker image from a development checkout no longer copies `.env.local` and other dotenv files into the image.
- The Docker images on GHCR and Docker Hub are now also tagged with the release version, e.g. `ghcr.io/huginn/huginn:v2026.09.09`, in addition to the commit SHA and `latest`.

Full details:

- https://github.com/huginn/huginn/security/advisories/GHSA-f7cq-gj98-cfjp

**Full Changelog**: https://github.com/huginn/huginn/compare/v2026.09.08...v2026.09.09

Related Repositories