Commit Graph
39026 Commits
Author SHA1 Message Date
Nicki Křížek 976ebffca5 Add new changelog file
Create new changelog and include it in the documentation. Include the
previous CHANGES as plain text without any markup.

(cherry picked from commit e9b6031e0c)
2024-07-29 14:49:09 +02:00
Nicki Křížek 84a3d8ca83 Address gitchangelog deprecation warning
(cherry picked from commit 951280bca5)
2024-07-29 12:34:08 +00:00
Nicki Křížek 3fe001ae2a Adjust gitchangelog whitespace
Format the output to produce a nicer looking rst output, similar to the
former CHANGES file.

(cherry picked from commit 1c95eeeb3f)
2024-07-29 12:34:08 +00:00
Nicki Křížek 915c2a960a Allow gitchangelog to include commit sha
Add an option which can be used to put short commit sha at the end of
each commit subject line in the generated changelog.

(cherry picked from commit c2b23fa2de)
2024-07-29 12:34:08 +00:00
Nicki Křížek 2bd901a699 Remove authors from gitchangelog output
Given our workflow, this could easily lead to misattribution. It's also
not an actionable information and it can be found in the MR / git log
instead.

(cherry picked from commit a8258d1c53)
2024-07-29 12:34:08 +00:00
Nicki Křížek ed4eb0c368 Reformat gitchangelog with black
(cherry picked from commit 9f90c1c65e)
2024-07-29 12:34:08 +00:00
Nicki Křížek e99549f6c7 Import gitchanglog 3.0.4
The  project hasn't seen any new development/changes since 2018 and it
seems unlikely we'd be able to get any changes into the upstream. Since
it's isolated into a single file and its task is fairly straighforward,
pull the code into our own repository and maintain it here as needed.

This also makes it easier to make any changes that are specific to our
project.

(cherry picked from commit 63247d8a73)
2024-07-29 12:34:07 +00:00
Nicki Křížek 3f26ac2a4d Merge tag 'v9.18.28' into bind-9.18 2024-07-23 16:10:41 +02:00
Nicki Křížek 356ab4ea24 Set up version and release notes for BIND 9.18.29
Merge branch 'nicki/set-up-version-and-release-notes-for-bind-9.18.29' into 'bind-9.18'

See merge request isc-projects/bind9!9162
2024-07-23 14:04:16 +00:00
Nicki Křížek 7c36c2d6a2 Set up release notes for BIND 9.18.29 2024-07-23 16:01:57 +02:00
Nicki Křížek 5afbbdfb6c Update BIND version to 9.18.29-dev 2024-07-23 16:01:57 +02:00
Nicki Křížek f77fadbf59 Update BIND version for release v9.18.28 2024-07-08 15:34:41 +02:00
Nicki Křížek 353bbfd03c Add a CHANGES marker 2024-07-08 15:34:33 +02:00
Michal NowakandNicki Křížek 0077cfd7a6 Refresh base image repos before installing from them
Stale repositories cause issue on installation in the docs:pdf CI job:

    E: Failed to fetch http://deb.debian.org/debian/pool/main/s/systemd/libsystemd-shared_252.22-1%7edeb12u1_amd64.deb  404  Not Found [IP: 2a04:4e42:78::644 80]
    E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

(cherry picked from commit 211a514dbd5d122a37ddb29f6db63edc86af73b7)
2024-07-08 15:34:10 +02:00
Nicki Křížek df02a1313b Merge branch 'nicki/prepare-documentation-for-bind-9.18.28' into 'v9.18.28-release'
Prepare documentation for BIND 9.18.28

See merge request isc-private/bind9!707
2024-07-08 13:11:44 +00:00
Nicki Křížek a4461699e2 Extend max-types-per-name documentation 2024-07-08 13:56:39 +02:00
Nicki Křížek 750d72c978 Move [GL #4473] to security fixes 2024-07-08 13:56:39 +02:00
Nicki Křížek d9dbb0d104 Tweak and reword release notes 2024-07-08 13:56:39 +02:00
Nicki Křížek 922f98a330 Add release note for [GL #4708] 2024-07-08 13:56:39 +02:00
Nicki Křížek 099e0fb0a3 Add release note for [GL #4736] 2024-07-08 13:56:39 +02:00
Nicki Křížek fdad7bb84b Add release note for [GL #3472] 2024-07-08 13:56:39 +02:00
Nicki Křížek 6c12c81266 Prepare release notes for BIND 9.18.28 2024-07-08 13:56:38 +02:00
Nicki Křížek 4fd679054f Use a dedicated CHANGES entry for SIG(0) removal
As opposed to the main branch (where the SIG(0) was changed), it has
been removed from the maintenance branches. Use a different changes
number to indicate there was a different solution of the issue.
2024-07-08 13:56:37 +02:00
Nicki Křížek ec3e15da3a Merge branch 'tcp-reset-connection-on-failed-send-9.18' into 'v9.18.28-release'
[9.18][CVE-2024-0760 (part 3)] Reset the TCP connection on a failed send

See merge request isc-private/bind9!722
2024-07-03 15:51:09 +00:00
Artem BoldarievandOndřej Surý c33b3d26f6 TCP/TLS DNS: unthrottle only when all input data processing
This commit ensures that we restart reading only when all DNS data in
the input buffer is processed so the we will not get into the
situation when the buffer is overrun.
2024-07-03 15:08:01 +02:00
Ondřej Surý e31190e704 Reset the TCP connection on a failed send
When sending fails, the ns__client_request() would not reset the
connection and continue as nothing is happening.  This comes from the
model that we don't care about failed UDP sends because datagrams are
unreliable anyway, but it greatly affects TCP connections with
keep-alive.

The worst case scenario is as follows:

1. the 3-way TCP handshake gets completed
2. the libuv calls the "uv_connection_cb" callback
3. the TCP connection gets queue because of the tcp-clients quota
4. the TCP client sends as many DNS messages as the buffers allow
5. the TCP connection gets dropped by the client due to the timeout
6. the TCP connection gets accepted by the server
7. the data already sent by the client gets read
8. all sending fails immediately because the TCP connection is dead
9. we consume all the data in the buffer in a very tight loop

As it doesn't make sense to trying to process more data on the TCP
connection when the sending is failing, drop the connection immediately
on the first sending error.

(cherry picked from commit bf9fd2a6ff)
2024-07-03 09:10:30 +02:00
Ondřej Surý 4b7c61381f Throttle the reading when writes are asynchronous
Be more aggressive when throttling the reading - when we can't send the
outgoing TCP synchronously with uv_try_write(), we start throttling the
reading immediately instead of waiting for the send buffers to fill up.

This should not affect behaved clients that read the data from the TCP
on the other end.

(cherry picked from commit bc3e713317)
2024-07-03 09:10:20 +02:00
Nicki Křížek 050a88898a Merge branch '3405-security-limit-the-number-of-resource-records-in-rrset-nxdomain-9.18' into 'v9.18.28-release'
[9.18][CVE-2024-1737 (part 2)] Be smarter about refusing to add many RR types to the database

See merge request isc-private/bind9!713
2024-07-02 11:05:57 +00:00
Ondřej Surý 8979166d35 Add more tests for adding many RR types to the database
More reclimit tests that test various scenarios adding combinations of
priority and non-priority RR types into the database.
2024-07-01 15:04:43 +02:00
Ondřej Surý 7f99d7e565 Be smarter about refusing to add many RR types to the database
Instead of outright refusing to add new RR types to the cache, be a bit
smarter:

1. If the new header type is in our priority list, we always add either
   positive or negative entry at the beginning of the list.

2. If the new header type is negative entry, and we are over the limit,
   we mark it as ancient immediately, so it gets evicted from the cache
   as soon as possible.

3. Otherwise add the new header after the priority headers (or at the
   head of the list).

4. If we are over the limit, evict the last entry on the normal header
   list.

(cherry picked from commit 57cd34441a)
2024-07-01 15:04:43 +02:00
Ondřej Surý 90c7c8078b Make the resolver qtype ANY test order agnostic
Instead of relying on a specific order of the RR types in the databases
pick the first RR type as returned from the cache.

(cherry picked from commit 58f660cf2b)
2024-07-01 13:15:04 +02:00
Ondřej Surý c2650f5331 Expand the list of the priority types
Add HTTPS, SVCB, SRV, PTR, NAPTR, DNSKEY and TXT records to the list of
the priority types that are put at the beginning of the slabheader list
for faster access and to avoid eviction when there are more types than
the max-types-per-name limit.

(cherry picked from commit b27c6bcce8)
2024-07-01 13:14:57 +02:00
Nicki Křížek 90be23f030 Merge branch 'tcp-do-not-unthrottle-on_isc_nm_read-v9.18' into 'v9.18.28-release'
[9.18][CVE-2024-0760 (part 2)] Do not un-throttle TCP connections on isc_nm_read(), add throttling to TLS DNS

See merge request isc-private/bind9!709
2024-06-25 08:48:37 +00:00
Artem Boldariev d4b1f7f239 Use smaller pools of requests and handles for sockets
This commit ensures that socket objects use smaller sizes for its
internal requests and handles pools. That prevents a memory allocator
from thrashing.
2024-06-18 17:54:17 +03:00
Artem Boldariev 16c1d1eb2e Avoid indefinite send re-scheduling in TLS DNS
When a peer is not reading the data we are sending it was for the TLS
DNS code to end up in a situation when it would indefinitely
reschedule send requests, effectively turning the 'uv_loop' into a
busy loop that would consume CPU cycles in endless efforts to send
outgoing data.

The main reason for that was only one send buffer dedicated for sends:
the code would re-queue sends until it is empty - that would never
happen when the remote side is not reading data.

That seems like an omission from the older day of the Network Manager
as it is quiet simple to make the code use multiple buffers for
sends. That ultimately breaks the cycle of futile send request
rescheduling.

As a side effect, this commit also gets rid of one memory copying on a
hot path.
2024-06-18 11:58:59 +03:00
Artem Boldariev c71a61c44b Introduce TCP throttling into TLS DNS code
Throttling functionality was omitted from the
c6f13f12cd. This commit fixes that,
taking into account the latest developments in this area.
2024-06-18 11:58:59 +03:00
Artem Boldariev eb4678e0b8 Do not un-throttle TCP connections on isc_nm_read()
Due to omission it was possible to un-throttle a TCP connection
previously throttled due to the peer not reading back data we are
sending.

In particular, that affected DoH code, but it could also affect other
transports (the current or future ones) that pause/resume reading
according to its internal state.

(cherry picked from commit d228aa8bbb944fbd04baf22d151fde5c33561e26)
2024-06-18 11:58:59 +03:00
Nicki Křížek 5b83419fa9 Merge branch '4507-confidential-clear-zversion-v9_18' into 'v9.18.28-release'
[9.18] [CVE-2024-4076] serve-stale zversion crash

See merge request isc-private/bind9!687
2024-06-10 17:27:54 +00:00
Matthijs MekkingandNicki Křížek acfb8508a8 Add release note for [GL #4507]
(cherry picked from commit 454f245a7047571afdfda62978ea75dda119a712)
2024-06-10 19:25:15 +02:00
Mark AndrewsandNicki Křížek 7d3042c384 Add CHANGES note for [GL #4507]
(cherry picked from commit 09ff8b1169f8be6867c0b2004d0369d246ad2994)
2024-06-10 19:24:39 +02:00
Mark AndrewsandNicki Křížek 9cfd20cd90 Clear qctx->zversion
Clear qctx->zversion when clearing qctx->zrdataset et al in
lib/ns/query.c:qctx_freedata.  The uncleared pointer could lead to
an assertion failure if zone data needed to be re-saved which could
happen with stale data support enabled.

(cherry picked from commit 179fb3532ab8d4898ab070b2db54c0ce872ef709)
2024-06-10 19:20:06 +02:00
Nicki Křížek 1e6cf868dd Merge branch 'security-4480-drop-sig0-support' into 'v9.18.28-release'
[9.18] [CVE-2024-1975] Remove support for SIG(0) message verification

See merge request isc-private/bind9!690
2024-06-10 17:17:52 +00:00
Petr ŠpačekandNicki Křížek 5aef5f1fb9 Add release note for GL #4480 2024-06-10 19:08:50 +02:00
Petr ŠpačekandNicki Křížek 8acd71b9cc Add CHANGES note for [GL #4480] 2024-06-10 19:07:00 +02:00
Aram SargsyanandNicki Křížek 227f9aa064 Adapt the upforwd test to the SIG(0) removal
Change the check so that update with SIG(0) is expected to fail.
2024-06-10 19:02:52 +02:00
Petr ŠpačekandNicki Křížek 02dffb63a8 Adapt the tsiggss test to the SIG(0) removal
Test that SIG(0) signer is NOT sent to the external socket for
authorization. It MUST NOT be considered a valid signature by
any chance.

Also check that the signer's name does not appear in authsock.pl
output.
2024-06-10 19:02:52 +02:00
Aram SargsyanandNicki Křížek 4b1f026ad9 Enable stdout autoflush in authsock.pl
With enabled buffering the output gets lost when the process
receives a TERM signal. Disable the buffering.
2024-06-10 19:02:52 +02:00
Petr ŠpačekandNicki Křížek 33007e302d Document SIG(0) verification removal 2024-06-10 19:02:51 +02:00
Petr ŠpačekandNicki Křížek bef3d2cca3 Remove support for SIG(0) message verification 2024-06-10 19:02:49 +02:00
Nicki Křížek 5220f4c977 Merge branch '3405-security-limit-the-number-of-resource-records-in-rrset-9.18' into 'v9.18.28-release'
[9.18] Add a limit to the number of RRs in RRSets

See merge request isc-private/bind9!697
2024-06-10 16:56:11 +00:00