v2026.09.09
gohugoio/hugov2026.09.09Sep 8, 2026by knu
Upgrading?
AI Summary
Adds outbound proxy support (Smokescreen) to prevent agents from reaching internal addresses and hardens several defaults.
Key Highlights
- Egress proxy support via Smokescreen to block internal addresses.
- Scenario imports now have timeouts, size limits, and better error reporting.
- TwitterStreamAgent retired as the streaming API is shut down.
Breaking Changes
- The per-Agent `proxy` option is refused while a proxy is enforced.
- TwitterStreamAgent is retired; new Agents cannot be created.
- Docker images no longer ship a fixed `APP_SECRET_TOKEN`.
New Features
- Outbound proxy enforcement for security.
- Enhanced import validation and limits.
- Random secret generation for Docker containers.
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
ollama/ollama★ 184,207
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
fatedier/frp★ 110,051
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
infiniflow/ragflow★ 92,612
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
junegunn/fzf★ 83,716
:cherry_blossom: A command-line fuzzy finder
caddyserver/caddy★ 78,237
Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS