Despite the gap of over a year since the last release, we are not aware of any security vulnerability affecting the default configuration. As always, please review the changelog and watch for warnings or errors when upgrading.
Highlights
- WAF lists now support /128 IPv6 entries. Cloudflare’s API now accepts individual IPv6 addresses in WAF lists. New
IP4_DEFAULT_PREFIX_LEN(default/32) andIP6_DEFAULT_PREFIX_LEN(default/64) control how bare addresses are stored in WAF lists. Users can now setIP6_DEFAULT_PREFIX_LENto128for per-address granularity. DNS records currently ignore prefix lengths, but will use these in the future. - Multi-instance support via comment-based selection. New
MANAGED_RECORDS_COMMENT_REGEXandMANAGED_WAF_LIST_ITEMS_COMMENT_REGEXlet multiple updater instances safely share the same domain or WAF list, each managing only records or items with matching comments. NewWAF_LIST_ITEM_COMMENTprovides a fallback comment for WAF list items, similar to howRECORD_COMMENTserves as a fallback for DNS records. - Multi-IP detection and reconciliation. Providers now return multiple IP addresses, each with a CIDR prefix length, and the reconciliation algorithm has been redesigned to handle them correctly. The experimental
local.ifaceprovider now collects all matching global unicast addresses from the specified interface, instead of just the first one. Multi-address support inurl:andfile:providers is also experimental. - New
file:provider. Reads IP addresses from a local file, re-reading each detection cycle. This enables integration with external scripts or monitoring systems without restarting the updater. (Multi-address support is experimental.) - New variants of
url:(url.via4:andurl.via6:) for transport overrides. By default,url:<url>connects using the same IP family as the address being detected. Override the IP family used to connect withurl.via4:<url>orurl.via6:<url>(e.g., get an IPv6 address over an IPv4 connection). (Multi-address support in URL-based providers is experimental.) - Rewritten user-facing messages. Many log messages have been reworded into clearer, more natural English.
Your Feedback Wanted
The IP prefix length work in this release lays the groundwork for several upcoming features. We’d love your input on the proposed configuration syntax:
- Per-domain IPv6 host IDs (#764):
IP6_DOMAINS=sub.example.com{hostid6=::2}IP6_DOMAINS=sub.example.com{hostid6=preserve}(keep the detected host IDs)IP6_DOMAINS=sub.example.com{hostid6=mac(77:cc:a7:f9:45:94)}(compute an EUI-64 host ID from a MAC address)DOMAINS=sub1.example.com{hostid6=::aad1},sub2.example.com{hostid6=preserve}
- Detection IP filtering (#1138):
IP6_DETECTION_FILTER=keep-allIP6_DETECTION_FILTER=!addr-in(fc00::/7)IP6_DETECTION_FILTER=subnet-in(2001:db8:abcd::/48)IP4_DETECTION_FILTER=!addr-in(10.0.0.0/8) && !addr-in(192.168.0.0/16)IP6_DETECTION_FILTER=contains(2002:dead:beef::/100) || contains(2005:dead:beef::/100)
| input | addr-in(1.1.0.0/16)
| subnet-in(1.1.0.0/16)
| contains(1.1.0.0/16)
|
|---|---|---|---|
1.1.1.1/8
| ✔️ | ❌️ | ✔️ |
1.1.1.1/16
| ✔️ | ✔️ | ✔️ |
1.1.1.1/24
| ✔️ | ✔️ | ❌️ |
1.2.2.2/8
| ❌️ (1.2.2.2 not in 1.1.0.0/16)
| ❌️ | ✔️ |
Also planned: a linter for boolean expressions targeting advanced usage of PROXIED and the upcoming IP4/6_DETECTION_FILTER, and further robustness improvements to the default cloudflare.trace provider.
Reminder from the Past
As a reminder, since 1.13.0, the updater no longer drops privileges internally, and PUID and PGID are ignored. Please use Docker’s built-in mechanism to drop privileges. The old Docker Compose template may grant unneeded privileges to the new updater, which is not recommended. Please review the new, simpler, and more secure template in README. In a nutshell, remove the cap_add attribute and replace the environment variables PUID and PGID with the user: "UID:GID" attribute. Similar options may exist for systems not using Docker Compose.
Other Notes
Shoutrrr support is no longer experimental. The shoutrrr notification integration, introduced in 1.12.0, is now considered stable.
Detailed Changes
Features
- The detection model has been redesigned so that providers return multiple IP addresses, each with a CIDR prefix length. New
IP4_DEFAULT_PREFIX_LENandIP6_DEFAULT_PREFIX_LENsettings control how bare addresses are stored in WAF lists. (#1144) (#1156) - The reconciliation algorithm has been redesigned to handle complex metadata mismatches when multiple IP addresses result in multiple records. (#1015) (#1020) (#1022) (#1115)
- New
file:provider reads IP addresses from a local file. (#1148) - New
static:<ip1>,<ip2>,...andstatic.emptyproviders have been added.static.emptyactively clears managed content for a given IP family. (#1102) (#1135) - The
url:,file:, andstatic:providers now accept addresses in CIDR notation (e.g.,198.51.100.1/24). (#1159) (#1169) - The experimental
local.ifaceprovider now collects all matching global unicast addresses. (#1095) - New
MANAGED_RECORDS_COMMENT_REGEXselects only DNS records whose comments match a regex. (#1103) - New
MANAGED_WAF_LIST_ITEMS_COMMENT_REGEXandWAF_LIST_ITEM_COMMENTprovide the same comment-based selection for WAF list items. (#1106) - New
url.via4:<url>andurl.via6:<url>providers override the IP family used to connect to a custom URL. (#1131) - The updater now warns about likely misconfigured
SHOUTRRRvalues. (#1111)
Bug Fixes
- The configuration parser now warns about extra commas in lists (e.g.,
a,,b) except for trailing commas, which were silently ignored. (#1177) - The updater now exits gracefully when
EMOJIorQUIETis invalid. (#1174) - The updater invalidates relevant zone search cache entries when a zone cannot be found for faster recovery. (#1125)
- API token verification is now stricter, catching malformed tokens before any update attempts. (#1126)
- Providers (especially
cloudflare.traceandcloudflare.doh) now validate detected IP addresses more strictly. (#1097) (#1099) (#1101) (#1151) - WAF list entries in the configuration are now deduplicated. (#1091)
- The updater now warns when a configured domain does not look like a fully qualified domain name. (#1019)
- The updater now warns when DNS records and WAF list items for the same domain have mixed ownership (some managed, some not). (#1173)