This release contains the fix for PowerDNS Security Advisory 2020-05 (CVE-2020-17482)
Raise an exception on invalid hex content in unknown records.¶
References: pull request 9500
This is a bugfix release for high traffic setups using the pipebackend or remotebackend.
gpgsqlbackend: add missing schema file to Makefile (tcely)¶
References: pull request 8157
stop using select() in places where FDs can be >1023¶
References: pull request 8162
This release contains the updated PostgreSQL schema for PowerDNS Security Advisory 2019-06 (CVE-2019-10203).
Upgrading is not enough - you need to manually apply the schema change: ALTER TABLE domains ALTER notified_serial TYPE bigint USING CASE WHEN notified_serial >= 0 THEN notified_serial::bigint END;
Update PostgreSQL schema for 2019-06.¶
References: pull request 8144
This release and 4.1.9 together fix the following security advisories:
Do not exit on exception parsing names of name servers to notify.¶
References: pull request 7964
Add an option to disable superslaving.¶
References: pull request 7922
Do not exit on exception resolving addresses to notify.¶
References: pull request 7663
Avoid very busy looping on lots of notifies.¶
References: pull request 7829
In gsql getAllDomainMetadata
, actually get all domain metadata. This makes DNSSEC metadata work with pdnsutil b2b-migrate
.¶
References: pull request 7921
Fix rectify for ENT records in narrow zones.¶
References: #7580, pull request 7609
Prevent leak of file descriptor if running out of ports for incoming AXFR.¶
References: #7294, pull request 7603
EL6: fix CXXFLAGS
to build with compiler optimizations.¶
References: pull request 7567
Fix API search failed with “Commands out of sync; you can’t run this command now”.¶
References: #7546, pull request 7602
Fix invalid SOA record in MySQL which prevented the authoritative server from starting.¶
References: #7496, pull request 7605
Plug mysql_thread_init
memory leak.¶
References: #7517, pull request 7509
Correctly interpret an empty AXFR response to an IXFR query.¶
References: #7494, pull request 7604
Fix replying from ANY address for non-standard port.¶
References: #7341, pull request 7610
Do not compress the root.¶
References: #7472, pull request 7607
Fix dot stripping in setcontent()
.¶
References: #7459, pull request 7608
This release fixes the following security advisory:
Insufficient validation in the HTTP remote backend (CVE-2019-3871, PowerDNS Security Advisory 2019-03)¶
References: pull request 7577
Prevent more than one CNAME/SOA record in the same RRset.¶
References: pull request 7279
This release fixes the following security advisories:
Apply alias scopemask after chasing¶
References: pull request 6976
Release memory in case of error in the openssl ecdsa constructor¶
References: pull request 6917
Switch to devtoolset 7 for el6¶
References: #7040, pull request 7118
Fix compilation with libressl 2.7.0+¶
References: #6943, pull request 6948
Actually truncate truncated responses¶
References: pull request 6913
Crafted zone record can cause a denial of service (CVE-2018-10851, PowerDNS Security Advisory 2018-03)¶
References: pull request 7149
Packet cache pollution via crafted query (CVE-2018-14626, PowerDNS Security Advisory 2018-05)¶
References: pull request 7149
Fix warnings reported by gcc 8.1.0.¶
References: pull request 6590
Make the gmysql backend future-proof. (Chris Hofstaedtler)
References: #6632, pull request 6648, pull request 6842, pull request 6844
Initialize some missed qtypes. (Chris Hofstaedtler)¶
References: #6685, pull request 6686
Avoid concurrent records/comments iteration from running out of sync.¶
References: pull request 6780
Fix a crash in the API when adding records¶
References: pull request 6816
pdns_control notify
: handle slave without renotify properly. (Chris Hofstaedtler)¶
References: #4457, pull request 6691
Reset the TSIG state between queries.¶
References: #6736, pull request 6738
Remove SOA-check backoff on incoming notify and fix lock handling. (Klaus Darilion)¶
References: pull request 6857
Fix an issue where updating a record via DNS-UPDATE in a child zone that also exists in the parent zone, we would incorrectly apply the update to the parent zone.¶
References: pull request 6858
Geoipbackend: check geoip_id_by_addr_gl
and geoip_id_by_addr_v6_gl
return value. (Aki Tuomi)¶
References: #6676, pull request 6677
This release contains several small fixes to the GeoIP backend. The most prominent fix being one where the backend would be slow when thousands of network masks were configured for services.
pdnsutil: use new domain in b2bmigrate (Aki Tuomi)¶
References: #6239, pull request 6559
Update copyright years to 2018 (Matt Nordhoff)¶
References: pull request 6130
Restrict creation of OPT and TSIG RRsets¶
References: #6441, pull request 6614
Fix handling of user-defined axfr filters return values¶
References: #6228, pull request 6370
Prevent the GeoIP backend from copying NetMaskTrees around, fixes slow-downs in certain configurations (Aki Tuomi)¶
References: #6584, #6585, pull request 6585, pull request 6608
Ensure alias answers over tcp have correct name¶
References: #6654, pull request 6659
This is the third release in the 4.1 train. Besides bug fixes, it contains some performance and usability improvements.
API: increase serial after dnssec related updates (Kees Monshouwer)¶
References: pull request 6571, pull request 6572
Auth: lower ‘packet too short’ loglevel¶
References: #6312, #6545, pull request 6573
Make check-zone error on rows that have content but shouldn’t¶
References: #6297, pull request 6553
Auth: avoid an isane amount of new backend connections during an axfr¶
References: #6427, pull request 6554
Report unparsable data in stoul invalid_argument exception¶
References: #6396, pull request 6555
Backport: recheck serial when axfr is done¶
References: #6484, pull request 6490
Backport: add tcp support for alias¶
References: #6331, pull request 6337
Auth: allocate new statements after reconnecting to postgresql¶
References: #6464, pull request 6551
Auth-bindbackend: only compare ips in ismaster() (Kees Monshouwer)¶
References: #6021, pull request 6570
Rather than crash, sheepishly report no file/linenum¶
References: #6354, pull request 6556
Document undocumented config vars¶
References: #6539, pull request 6540
Backport #6276 (auth 4.1.x): prevent cname + other data with dnsupdate¶
References: #6276, pull request 6314
Move includes around to avoid boost L conflict¶
References: #6516, pull request 6542
Backport: update edns option code list¶
References: #6155, pull request 6543
Auth: link dnspcap2protobuf against librt when needed¶
References: #6487, pull request 6548
Fix a warning on botan >= 2.5.0¶
References: #6478, pull request 6549
Auth 4.1.x: unbreak build¶
References: #6304, pull request 6552
Dnsreplay: bail out on a too small outgoing buffer¶
References: pull request 6575
Backport: debian authoritative packaging fixes for 4.1¶
References: #6286, pull request 6546
Fix piddir detection on centos 6¶
References: #6051, #6062, pull request 6547
This is the second release in the 4.1 train.
This is a bug-fix only release, with fixes to the LDAP and MySQL backends, the pdnsutil tool, and PDNS internals.
Changes since 4.1.1:
Backport: forbid label compression in alias wire format¶
References: #6028, pull request 6260
Include unistd.h for chroot(2) et al. (Florian Obser)¶
References: pull request 6077
Auth: fix out of bounds exception in caa processing, fixes #6089¶
References: pull request 6103
Add the missing <sys/time.h> include to mplexer.hh for struct timeval¶
References: #6040, pull request 6041
Auth: init openssl and libsodium before chrooting in pdnsutil¶
References: #6125, pull request 6129
Auth: always bind the results array after executing a mysql statement¶
References: #6115, pull request 6134
Ldap: fix getdomaininfo() to set this
as di.backend (Grégory Oestreicher)¶
References: pull request 6048
Ldapbackend: fix listing zones incl. axfr (Chris Hofstaedtler)¶
References: #6060, #6097, pull request 6122
Ixfr: correct behavior of dealing with dns name with multiple records (Leon Xu)¶
References: pull request 6172
This is the first release in the 4.1 train.
The full release notes can be read on the blog.
The 4.1 release is a major upgrade for the Authoritative Server featuring many improvements and speedups:
Recursor passthrough removal: This will impact many installations, and we realize this may be painful, but it is necessary. Previously, the PowerDNS Authoritative Server contained a facility for sending recursion desired queries to a resolving backend, possibly after first consulting its local cache. This feature (‘recursor=’) was frequently confusing and also delivered inconsistent results, for example when a query ended up referring to a CNAME that was outside of the Authoritative Server’s knowledge. To read more about this please see the blog post mentioned above or read the migration guide.
Changes since 4.1.0-rc3:
Remove deprecated SOA-EDIT values: INCEPTION and INCEPTION-WEEK.¶
References: pull request 6004
Make the /cryptokeys endpoint consistently use CryptoKey objects.¶
References: #5862, pull request 5964
Report remote IP when SOA query comes back with empty question section.¶
References: #5974, pull request 5976
Deny cache flush, zone retrieve and notify if the API is read-only.¶
References: pull request 6007
Fix hang when PATCHing zone during rectify.¶
References: pull request 5968
This is the third release candidate of the PowerDNS Authoritative Server in the 4.1 release train.
This release features various bug fixes and some improvements to pdnsutil.
Make it possible to disable DNSSEC via the API, this is equivalent
to doing pdnsutil disable-dnssec
.¶
References: #5909, #5910, pull request 5936
Add add-meta
command to pdnsutil that can be used to append
to existing metadata without clobbering it.¶
References: #5853, pull request 5883
Better support for deleting entries in NetmaskTree and NetmaskGroup.¶
References: pull request 5616
Throw exception for metadata endpoint with wrong zone. Before, We would happily accept this POST.¶
References: pull request 5935
Warn if records in a zone are occluded.¶
References: #3059, #5948, #5949, pull request 5879
Use _exit()
when we really want to exit, for example
after a fatal error. This stops us dying while we die. A call to
exit()
will trigger destructors, which may paradoxically stop
the process from exiting, taking down only one thread, but harming
the rest of the process.¶
References: pull request 5917
Fix messages created by pdnsutil generate-tsig-key
.¶
References: #5849, pull request 5884
Add back missing output details to rectifyZone.¶
References: #5903, pull request 5928
Use 302 redirects in the webserver for ringbuffer reset or resize. With the current 301 redirect it is only possible to reset or resize once. Every next duplicate action is replaced by the destination cached in the browser.¶
References: pull request 5905
This is the second release candidate of the PowerDNS Authoritative Server in the 4.1 release train.
This release has several performance improvements, stability and correctness fixes.
Rectify zones via the API. (Nils Wisiol)
References: #3417, #5712, pull request 5779
Add PKCS#11 support to packages on Operating Systems that support it.¶
References: pull request 5665
Add support for Botan 2.x and drop support for Botan 1.10 (the latter thanks to Kees Monshouwer).¶
References: #2250, #5734, #5797, #5889, pull request 5498
Fix issues when b2b-migrating from the BIND backend to a database:
References: #5115, #5807, pull request 5810
Add support for new record types to the LDAP backend.¶
References: pull request 5584
Add log-timestamp option. This option can be used to disable printing timestamps to stdout, this is useful when using systemd-journald or another supervisor that timestamps stdout by itself. As the logs will not have 2 timestamps.¶
References: pull request 5842
Stop doing individual RRSIG queries during outbound AXFR. (Kees Monshouwer)¶
References: #5767, pull request 5838
Treat requestor’s payload size lower than 512 as equal to 512. Before, we did not follow RFC 6891 section 6.2.3 correctly.¶
References: pull request 5678
Correctly purge entries from the caches after a transfer. Since the QC/PC split up, we only removed entries for the AXFR’d domain from the packet cache, not the query cache. We also did not remove entries in case of IXFR.¶
References: #5767, pull request 5766
When throwing because of bogus content in the tinydns database, report the offending name+type so the admin can find the offending record.¶
References: pull request 5791
For zone PATCH requests, add new X-PDNS-Old-Serial
and
X-PDNS-New-Serial
response headers with the zone serials before
and after the changes.¶
References: pull request 5696
Make default options singular and use defaults in Cryptokey API-endpoint¶
References: pull request 5704
Improve trailing dot handling internally which lead to a segfault in pdnsutil before.¶
References: #5673, pull request 5684
Remove printing of DS records from pdnsutil export-zone-dnskey …
. This was not only inconsistent behaviour but also done incorrectly.¶
References: #5719, pull request 5729
Make bindbackend startTransaction to return false when it has failed. (Aki Tuomi)¶
References: pull request 5702
Log the needed size when a MySQL result was truncated.¶
References: #5675, pull request 5820
Remove “” around secpoll result which fixes pdns_control show
security-status
not working.¶
References: #5692, pull request 5710
Make the auth also publish CDS/CDNSKEY records for inactive keys, as this is needed to roll without double sigs.¶
References: #5721, pull request 5722
Fix a crash when getting a public GOST key if the private one is not set.¶
References: pull request 5734
Ignore SOA-EDIT for PRESIGNED zones.¶
References: pull request 5815
This is the first release candidate of the PowerDNS Authoritative Server in the 4.1 release train.
Add TCP management options described in section 10 of RFC 7766.¶
References: pull request 4624
Add TCP Fast Open support.¶
References: #5129, pull request 5137
Hash the entire query in the packet cache, split caches. This makes the authoritative server pass the EDNS compliance test.
Add cache hit/miss statistics (Kees Monshouwer).
¶References: #4204, pull request 5132, pull request 5258
Add an adjustable statistics interval (@phonedph1).¶
References: #3781, pull request 5190, pull request 5271
Add option to set a global lua-axfr-script (Kees Monshouwer).¶
References: pull request 5316
Allow forwarding of NOTIFY messages using forward-notify (@DrRemorse).¶
References: pull request 1701, pull request 4964, pull request 4965
Add API endpoints for Domain metadata (Christian Kröger).¶
References: pull request 4093, pull request 5038
Implement CryptoKey
in the API (Wolfgang Studier, @MrM0nkey, Tudor Soroceanu, Benjamin Zengin).¶
References: #706, pull request 4106
calidns: add –increment and –want-recursion flags.¶
References: pull request 5339
Allow the use of a Lua script to validate DNS Update requests (Aki Tuomi).¶
References: pull request 4058
Send a notification to all slave servers after every dnsupdate (Kees Monshouwer, Florian Obser).¶
References: #4821, pull request 5263, pull request 5264, pull request 5321
Support “native” zones in the BIND backend.¶
References: #1284, pull request 5115
Many improvements and additions to the LDAP backend (Grégory Oestreicher).¶
References: #3358, pull request 4477
Support 2-character country codes and the MaxMind cities database in the GeoIP backend (Aki Tuomi).¶
References: #4122, #5255, pull request 5266, pull request 5269, pull request 5270
Add function to the MyDNS backend to allow backend-to-backend migrations (Aki Tuomi).¶
References: pull request 5043
Support the SMIMEA RRType.¶
References: pull request 5379
Remove recursion. See Migrating from using recursion on the Authoritative Server to using a Recursor for migration strategies (Kees Monshouwer).¶
References: #2380, #2606, #3337, #4238, #4315, #4616, pull request 4752
Remove the experimental Lua Policy Engine (Aki Tuomi).¶
References: pull request 5468
Revamp and clean label compression code. Speeds up large packet creation by ~40%.¶
References: pull request 4373
Apply non-local-bind to query-local-address and query-local-address6 when possible.¶
References: #4299, pull request 4332
A number of fixes and improvements that are difficult to untangle:
DNSResourceRecord
from the hot path of packet assembly.References: pull request 4467, pull request 4492
Improve cleaning, remove an unnecessary lock and improve performance of the packetcache (Kees Monshouwer).¶
References: #4503, pull request 4504
Improve SOA records caching (Kees Monshouwer).¶
References: pull request 4485
Make sure AXFR only deletes records from a SLAVE domain in a multi backend setup (Kees Monshouwer).¶
References: pull request 4829
Tidy up UeberBackend (Chris Hofstaedtler).¶
References: pull request 4908
Improve API performance by instantiating only one DNSSECKeeper per request.¶
References: pull request 4944
Incremental backoff for failed slave checks.
When a SOA record for a slave domain can’t be retrieved, use an increasing interval between checking the domain again. This prevents hammering down on already busy servers.
¶References: #349, #602, pull request 4953
Remove d_place from DNSResourceRecord (Chris Hofstaedtler).¶
References: pull request 4549
Add an option to allow AXFR of zones with a different (higher/lower) serial (Kees Monshouwer).¶
References: pull request 5169
Use the resolver setting for the stub resolver, use resolv.conf as fallback.¶
References: #4655, pull request 5112
Re-implement the AXFR Filter with LuaContext (Aki Tuomi).¶
References: pull request 5250
Allow control socket to listen on IPv6 (@Gibheer).¶
References: pull request 5387
Fix typo in two log messages (Ruben Kerkhof).¶
References: pull request 5523
Update YaHTTP (to fix a warning reported by Coverity).¶
References: pull request 5542
Clarify how we check the return value of std::string::find() (reported by Coverity).¶
References: pull request 5541
Wrap the webserver’s and Resolver::tryGetSOASerial objects into smart pointers.¶
References: pull request 5543
SSql: Use unique_ptr for statements (Aki Tuomi).¶
References: pull request 4692
Fix libatomic detection on ppc64 (Sander Hoentjen).¶
References: pull request 5599
Switch the default webserver’s ACL to “127.0.0.1, ::1”.¶
References: pull request 5588
NOTIMP is only appropriate for an unsupported opcode (Kees Monshouwer).¶
References: pull request 5611
Catch DNSName exception in the Zoneparser.¶
References: pull request 5641
Listen on 127.0.0.1 during regression tests (@tcely).¶
References: pull request 5583
Enable the webserver when api is ‘yes’ (Chris Hofstaedtler).¶
References: #4290, pull request 4408
Prevent sending nameservers list and zone-level NS in rrsets in the API (Chris Hofstaedtler).¶
References: #4132, pull request 4751
Forbid mixing CNAMEs and other RRSets in the API (Christan Hofstaedtler).¶
References: #5305, pull request 5389
Prevent duplicate records in single RRset (Chris Hofstaedtler).¶
References: pull request 4195
Implement subcommand printing all KSK DS records in pdnsutil (Jonas Wielicki).¶
References: #4005, pull request 4007
Allow setting the account of a zone via pdnsutil (Tuxis Internet Engineering).¶
References: pull request 4584
Print “$ORIGIN .” on pdnsutil list-zone
, so the output can be used in pdnsutil load-zone
(Tuxis Internet Engineering).¶
References: pull request 4719
pdnsutil: clarify error message when set-presigned fails with DNSSEC disabled (Peter Thomassen).¶
References: pull request 4478
pdnsutil: Validate names with address records to be valid hostnames (Håkan Lindqvist).¶
References: pull request 3913
Correct pdnsutil help output for add-zone-key.¶
References: pull request 5118
Check for valid hostnames in SRV, NS and MX records.¶
References: #512, pull request 5062
Disable ALIAS expansion by default.¶
References: #5119, pull request 5182
Make the zone parser adhere to RFC 2308 with regards to implicit TTLs.
Existing zone files may now be interpreted differently. Specifically, where we previously used the SOA minimum field for the default TTL if none was set explicitly, or no $TTL was set, we now use the TTL from the previous line.
¶References: pull request 5094
mydnsbackend: Initialize d_query_stmt (Aki Tuomi).¶
References: pull request 5605
Enable setting custom pgsql connection parameters, like TLS parameters (Tarjei Husøy).¶
References: pull request 4711
Use pkg-config to detect PostgreSQL libraries.¶
References: #2358, #5193, pull request 5121, pull request 5221
Use BIGSERIAL for records.id in the gpgsql backend (Arsen Stasic).¶
References: pull request 5426
Ship ldapbackend schema files in tarball (Chris Hofstaedtler).¶
References: pull request 5509
Add ability to have service record for apex record and any other static record (Aki Tuomi).¶
References: pull request 5548
Report query statistics as full numbers, not scientific notation in the webserver.¶
References: #1844, pull request 5116
Schema changes for MySQL / MariaDB and PostgreSQL to for storage requirements of various versions (Kees Monshouwer).¶
References: pull request 5518
Fix compilation on systems with Boost < 1.54¶
References: pull request 4424
Fix possible variable shadowing (Kees Monshouwer, Chris Hofstaedtler).¶
References: #4546, pull request 4548, pull request 4560
Fix getaddrinfo()
returning address in triplicate.¶
References: pull request 4855
Turn exception in a qthread into an error instead of a crash.¶
References: pull request 5117
Remove duplicate dns2_tolower() function and move ascii-related function to one file (Thiago Farina).¶
References: pull request 5212, pull request 5249
Make copying locks impossible.¶
References: pull request 5209
Properly truncate trailing bits of EDNS Client Subnet masks.¶
References: pull request 5320
Fix regressions in the AXFR rectification code (Kees Monshouwer, Arthur Gautier).¶
References: pull request 5083, pull request 5161
Zero the port when creating a netmask from a ComboAddress.¶
References: pull request 5408
Drop (broken) support for packet-specific SOA replies from backends (Chris Hofstaedtler).¶
References: pull request 5512
Fix validation at the exact RRSIG inception or expiration time¶
References: pull request 5525
Lookups one level (or more) below apex did confuse getAuth() for qytpe DS (Kees Monshouwer).¶
References: pull request 5519
First and last SOA in an AXFR must be identical (Kees Monshouwer).¶
References: pull request 5633
Make the URL in zone info absolute (Chris Hofstaedtler).¶
References: #4524, pull request 4526
Avoid creating fake DNSPacket objects just for calling getAuth() from API code (Chris Hofstaedtler).¶
References: pull request 5516
Check if the API is read-only on crypto keys methods.¶
References: pull request 5589
Fix getSOA() in luabackend (@zilopbg).¶
References: pull request 5556
Avoid undefined behaviour in Clang vs. GCC when printing DS records in pdnsutil.¶
References: pull request 4740
In pdnsutil create-slave-zone
, actually add all slaves.¶
References: #5124, pull request 5125
Fix off-by-one in dnsreplay –packet-limit¶
References: pull request 5303
Fix that pdnsutil edit-zone complains about auth=1 problems on all data.¶
References: pull request 5610
Do not corrupt data supplied by other backends in getAllDomains (Chris Hofstaedtler).¶
References: #4328, pull request 4650
Reconnect to the server if the My/Pg connection has been closed.¶
References: #3824, #5005, pull request 5245
Make statement actually unique (Chris Hofstaedtler).¶
References: #4928, pull request 4929
Fix ldap-strict autoptr feature.¶
References: #3165, pull request 4922
Fix an erroneous ‘.’ in “.ip6.arpa” (@shantikulkarni).¶
References: #5091, pull request 5340
Apply weights consistently during GeoIP lookups (Aki Tuomi).¶
References: #4704, pull request 5267
Fix two problems with remotebackend (Aki Tuomi):
References: pull request 4997
Don’t copy data around in the Remote Backend when sending and receiving in the Unix Connector.¶
References: #5306, pull request 5308
Add missing query for last key insert id in the goracle backend (Aki Tuomi).¶
References: pull request 5506