v2026.09.09

TimoBolkart/FLAME-Universev2026.09.09Sep 8, 2026by knu

Upgrading?

AI Summary

This release hardens security by preventing Agents from accessing internal addresses on shared instances and introduces outbound proxy support via Smokescreen, alongside stricter limits on Scenario imports.

Key Highlights

  • Outbound proxy enforcement (Smokescreen) to block internal address access
  • Timeout and size limits for Scenario imports by URL
  • Agents without a proxy option now honor http_proxy environment variable
  • Docker images no longer ship a fixed APP_SECRET_TOKEN
  • Retires the deprecated TwitterStreamAgent

Breaking Changes

  • Per-Agent proxy option is refused while a proxy is enforced
  • TwitterStreamAgent is retired (cannot create new ones)

New Features

  • Outbound proxy support to prevent internal address access
  • Scenario import timeout and size limits
  • Support for http_proxy in Agents without explicit proxy options
  • Random APP_SECRET_TOKEN generation on container start

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