./net/unbound, DNS resolver and recursive server

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.19.3, Package name: unbound-1.19.3, Maintainer: pettai

Unbound is an implementation of a DNS resolver. It provides a library
similiar to libresolv that can be used for synchronous and asynchronous
DNS lookups. It also provides a caching-only (recursive) DNS server.

Unbound has full support for IPv6 and DNSSEC validation,
DNS-over-TLS and DNS-over-HTTPS.


Required to run:
[security/openssl] [devel/libevent]

Required to build:
[devel/flex] [pkgtools/cwrappers]

Package options: doh

Master sites:

Filesize: 6190.122 KB

Version history: (Expand)


CVS history: (Expand)


   2024-03-14 10:38:19 by Havard Eidnes | Files touched by this commit (2) | Package updated
Log message:
Update net/unbound to version 1.19.3.

Pkgsrc changes:
 * Add dependency on devel/protobuf-c/buildlink3.mk
 * Add pkg-config as tool dependency
 * Adjust checksums

Upstream changes:
Features:
- Merge PR #973: Use the origin (DNAME) TTL for synthesized CNAMEs as
  per RFC 6672.

Bug Fixes:
- Fix unit test parse of origin syntax.
- Use 127.0.0.1 explicitly in tests to avoid delays and errors on
  newer systems.
- Fix #964: config.h.in~ backup file in release tar balls.
- Merge #968: Replace the obsolescent fgrep with grep -F in tests.
- Merge #971: fix 'WARNING: Message has 41 extra bytes at end'.
- Fix #969: [FR] distinguish Do53, DoT and DoH in the logs.
- Fix dnstap that assertion failed on logging other than UDP and TCP
  traffic. It lists it as TCP traffic.
- Fix to sync the tests script file common.sh.
- iana portlist update.
- Updated IPv4 and IPv6 address for b.root-servers.net in root hints.
- Update test script file common.sh.
- Fix tests to use new common.sh functions, wait_logfile and
  kill_from_pidfile.
- Fix #974: doc: default number of outgoing ports without libevent.
- Merge #975: Fixed some syntax errors in rpl files.
- Fix root_zonemd unit test, it checks that the root ZONEMD verifies,
  now that the root has a valid ZONEMD.
- Update example.conf with cookie options.
- Merge #980: DoH: reject non-h2 early. To fix #979: Improve errors
  for non-HTTP/2 DoH clients.
- Merge #985: Add DoH and DoT to dnstap message.
- Fix #983: Sha1 runtime insecure change was incomplete.
- Remove unneeded newlines and improve indentation in remote control
  code.
- Merge #987: skip edns frag retry if advertised udp payload size is
  not smaller.
- Fix unit test for #987 change in udp1xxx retry packet send.
- Merge #988: Fix NLnetLabs#981: dump_cache truncates large records.
- Fix to link with -lcrypt32 for OpenSSL 3.2.0 on Windows.
- Fix to link with libssp for libcrypto and getaddrinfo check for
  only header. Also update crosscompile to remove ssp for 32bit.
- Merge #993: Update b.root-servers.net also in example config file.
- Update workflow for ports to use newer openssl on windows compile.
- Fix warning for windres on resource files due to redefinition.
- Fix for #997: Print details for SSL certificate failure.
- Update error printout for duplicate trust anchors to include the
  trust anchor name (relates to #920).
- Update message TTL when using cached RRSETs. It could result in
  non-expired messages with expired RRSETs (non-usable messages by
  Unbound).
- Merge #999: Search for protobuf-c with pkg-config.
- Fix #1006: Can't find protobuf-c package since #999.
- Fix documentation for access-control in the unbound.conf man page.
- Merge #1010: Mention REFUSED has the TC bit set with unmatched
  allow_cookie acl in the manpage. It also fixes the code to match the
  documentation about clients with a valid cookie that bypass the
  ratelimit regardless of the allow_cookie acl.
- Document the suspend argument for process_ds_response().
- Move github workflows to use checkoutv4.
- Fix edns subnet replies for scope zero answers to not get stored
  in the global cache, and in cachedb, when the upstream replies
  without an EDNS record.
- Fix for #1022: Fix ede prohibited in access control refused answers.
- Fix unbound-control-setup.cmd to use 3072 bits so that certificates
  are long enough for newer OpenSSL versions.
- Fix TTL of synthesized CNAME when a DNAME is used from cache.
- Fix unbound-control-setup.cmd to have CA v3 basicConstraints,
  like unbound-control-setup.sh has.
   2024-03-07 10:48:53 by Havard Eidnes | Files touched by this commit (2) | Package updated
Log message:
net/unbound: update to version 1.19.2.

Upstream changes:

Bug Fixes:
- Fix CVE-2024-1931, Denial of service when trimming EDE text on
  positive replies.
   2024-02-13 14:53:26 by Havard Eidnes | Files touched by this commit (2)
Log message:
Update net/unbound to version 1.19.1.

Pkgsrc changes:
 * none, other than checksums.

Upstream changes:
This security release fixes two DNSSEC validation vulnerabilities:
CVE-2023-50387 (referred here as the KeyTrap vulnerability) and
CVE-2023-50868 (referred here as the NSEC3 vulnerability).

The KeyTrap vulnerability works by using a combination of Keys
(also colliding Keys), Signatures and number of RRSETs on a malicious
zone.  Answers from that zone can force a DNSSEC validator down a
very CPU intensive and time costly validation path.

The NSEC3 vulnerability uses specially crafted responses on a
malicious zone with multiple NSEC3 RRSETs to force a DNSSEC validator
down a very CPU intensive and time costly NSEC3 hash calculation path.

Both can force Unbound to spend an enormous time (comparative to
regular traffic) validating a single specially crafted DNSSEC
response while everything else is on hold for that thread. A
trivially orchestrated attack could render all threads busy with
such responses leading to denial of service.

From version 1.19.1 on, Unbound introduces suspension on DNSSEC
response validations that seem to require more attempts than Unbound
is willing to make per response validation run. Suspension means
that Unbound will continue with other work before resuming a
suspended validation offering CPU time between validation resumptions
to other tasks. There is a backoff timer when suspending which is
further influenced by the number of suspends already used and the
amount of work currently in Unbound.

The introduced builtin limits in Unbound are:

- Max 4 DNSSEC key collissions are allowed when building chain of trust.
  More than that without a secure key treats the delegation as bogus.
- 8 validation attempts per RRSET (combination of keys + signatures).
  If more are needed and Unbound has yet to find a valid signature
  the RRSET is treated as bogus.
- More than 8 validation attempts per answer will suspend validation.
- 8 NSEC3 hash calculations are allowed before suspension. More than
  that will suspend validation.
- The limit of total suspensions is 16 after which the query will error
  out. Any completed RRSET validations populate the cache for use in
  future queries.

While under attack Unbound could show higher CPU load because of the
needed validations but the suspend strategy would guarantee the CPU is
not locked on any particular validation task.

We would like to thank Elias Heftrig, Haya Schulmann, Niklas Vogel,
and Michael Waidner from the German National Research Center for
Applied Cybersecurity ATHENE for discovering and responsibly
disclosing the KeyTrap vulnerability.

We would like to thank Petr Spacek from ISC for discovering and
responsibly disclosing the NSEC3 vulnerability.

Bug Fixes
- Fix CVE-2023-50387, DNSSEC verification complexity can be exploited to
  exhaust CPU resources and stall DNS resolvers.
- Fix CVE-2023-50868, NSEC3 closest encloser proof can exhaust CPU.
   2024-01-30 19:29:21 by Adam Ciarcinski | Files touched by this commit (47)
Log message:
revbump for devel/abseil
   2023-11-15 19:14:46 by Thomas Klausner | Files touched by this commit (55)
Log message:
*: bump for protobuf 25
   2023-11-08 14:21:43 by Thomas Klausner | Files touched by this commit (2377)
Log message:
*: recursive bump for icu 74.1
   2023-11-02 13:20:06 by Thomas Klausner | Files touched by this commit (54)
Log message:
*: recursive bump for protobuf
   2023-10-25 00:11:51 by Thomas Klausner | Files touched by this commit (2298)
Log message:
*: bump for openssl 3