Skip to content

blocky

v0.32.0 Security

This release patches 2 CVEs for security teams tracking exposure across their dependency inventory.

Published 1mo Privacy & Ad-blocking
2 patched CVEs
Read the diff → Tool health → What is this tool? →
This release patches 2 known CVEs GHSA-x845-2f78-7v36 GO-2026-5745
2 CVEs patched

Topics

ad-blocker adblock adblocker dns dns-over-https go
+3 more
parental-control pihole self-hosted

Affected surfaces

crypto_tls

Summary

AI summary

Broad release touches @0xERR0R, Build and dependencies, deps, and Bug fixes.

Full changelog

Changelog

Features

  • c851293904f8a7f941e09448b1f0fe5b4a935994: feat(blocking): log the matched rule in the block reason (#2091) (@0xERR0R)
  • 87be127f9e58df90f59b2a4f7782426722df5c17: feat(cache): Shard the result cache to remove the single-lock read ceiling (#2097) (@0xERR0R)
  • 7c6da156e8fe22446e4bbe0d80b609fef3c51dea: feat(config): structurally merge config folder files (#1827) (#2112) (@0xERR0R)
  • e7958e0dc14322583ea7e32edcea44f2aeb487c1: feat(lists): opt-in on-disk download cache with conditional revalidation (#2087) (@0xERR0R)
  • b82199b64a8429f185fa04c1a7b750c86ddca245: feat(querylog): ignore domains (exact/wildcard/regex) in query log (#2084) (@0xERR0R)
  • bee2d8bb87d1f5f5013b1a526d29ef813834e5a1: feat(resolver): UDP-first plain-DNS upstream and EDNS0 buffer floor (#2100) (@0xERR0R)
  • 0b70e5cfd2838325d53e9d8ac9ee69248eb1fb1a: feat(resolver): add DNS rebinding protection (#2111) (@0xERR0R)
  • 1b8e08a6f93c9f4b618d092067a49a06cefb9824: feat(resolver): pool DoT connections and enable TLS session resumption (#2098) (@0xERR0R)
  • 4018d9e5da51215d183310e24be0e81e9ab1035f: feat: in-memory statistics subsystem with /api/stats REST endpoint (#2093) (@0xERR0R)
  • 7abca446a597103b122e9894c176e4468b81b958: feat: support PROXY protocol on proxied DoT/DoH listeners (#2094) (@kastakhov)

Bug fixes

  • 2496d12559f344fe0e49fd069b324d1ec3c4da7d: fix(dnssec): close DNSSEC validation bypass & cache-scope pollution (GHSA-x845-2f78-7v36) (#2119) (@0xERR0R)
  • 06555e04de1fa4063d05fe0520e38f7af325dcd5: fix(metrics): bound reason label cardinality for blocked responses (#2114) (@0xERR0R)
  • e0ea9b3ea56e3d074569abd3010251e7c6ebd593: fix(resolver): eliminate recursive RLock deadlock in blocking group resolution (#2106) (@0xERR0R)
  • 80f742e6f0d9612d494f065f8202e61a5c7b4c97: fix(server): answer browser CORS preflights for custom headers and Private Network Access (#2109) (@0xERR0R)
  • 9702c8fbd0b8f9356e0e0879ffc495f2944668b8: fix(stats): populate allow/denylist counts in /api/stats at startup (#2113) (@0xERR0R)

Build and dependencies

  • 821e378131b78398a62f81c6dbf788dfd5d9a379: build(deps): bump codecov/codecov-action from 6 to 7 (#2089) (@dependabot[bot])
  • d63f84b37aa234e8e80390c09b2e45e9e4a14a89: build(deps): bump github.com/0xERR0R/expiration-cache from 0.1.0 to 0.2.0 (#2095) (@dependabot[bot])
  • 81f2b2a523ab0dc2f84fa2a50dd7161ebc82292d: build(deps): bump github.com/onsi/ginkgo/v2 from 2.29.0 to 2.30.0 (#2108) (@dependabot[bot])
  • 9c5abdfcb2bf7b27d8c6bf9c55e3092ef170de1b: build(deps): bump github.com/onsi/ginkgo/v2 from 2.30.0 to 2.31.0 (#2116) (@dependabot[bot])
  • 6c0ec5f604a8e4b4c6cfe305c881cf226eb3ddaf: build(deps): bump github.com/onsi/gomega from 1.41.0 to 1.42.0 (#2115) (@dependabot[bot])
  • 4beb9fed8373ddd0ab4d0567c17ee5f1195adcfe: build(deps): bump github.com/quic-go/quic-go from 0.59.1 to 0.60.0 (#2090) (@dependabot[bot])
  • 8fe22023516e25a57d6aacf23f60f4c7e6e4de80: build(deps): bump golang.org/x/net from 0.55.0 to 0.56.0 (#2101) (@dependabot[bot])
  • 52fa6a4863aa40ad09bd95817d2bac018f671476: build(deps): bump golang.org/x/sys from 0.45.0 to 0.46.0 (#2096) (@dependabot[bot])

Misc

  • 1c9f717c9d2fad94e01accd28466f1d09b067b8b: ci(e2e): speed up e2e job via Ginkgo proc oversubscription (#2085) (@0xERR0R)
  • 8d49922a9afad384f070cf50b2194e792b3282b4: ci: cross-compile multi-arch docker image instead of QEMU emulation (#2081) (@0xERR0R)
  • 355a9a177ae6d462d74c78766af61e0460fd821a: docs(grafana): redesign Grafana dashboard and update integration guide (#2110) (@0xERR0R)
  • c791e8057e199b318e8062f1924bbb35c01deb7e: perf(e2e): probe blocky healthcheck at 250ms during start period (#2086) (@0xERR0R)
  • a0fb375df96631c0889c69b2e29b32518845e775: perf(lists): speed up blocklist loading (cache build + parsing) (#2083) (@0xERR0R)
  • 316b073dfe33944f46863d001206a5d489e3d6d5: perf(resolver): pre-classify client groups to cut per-query allocations (#2103) (@0xERR0R)
  • d5028066c9af5b09cff89455e2d87fae7c7323ed: perf(server): let Truncate decide response compression (#2102) (@0xERR0R)
  • 8b3251296901646f1e4bd6a37737fcdd493b9cdb: test(e2e): de-flake PROXY protocol and upstream init.strategy specs (#2099) (@0xERR0R)

❤️ Support Blocky

Blocky is free and open source, developed in my spare time — no telemetry, no ads, no hidden
filtering. If it's useful to you, please consider supporting its continued development:

GitHub Sponsors ·
thanks.dev ·
Liberapay ·
Ko-fi ·
PayPal

Thank you to everyone supporting Blocky! 🙏

Security Fixes

  • GHSA-x845-2f78-7v36 – close DNSSEC validation bypass and cache‑scope pollution in dnssec module

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track blocky

Get notified when new releases ship.

Sign up free

About blocky

Fast and lightweight DNS proxy as ad-blocker for local network with many features

All releases →

Related context

Beta — feedback welcome: [email protected]