summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladimír Čunát <vladimir.cunat@nic.cz>2023-11-06 19:37:09 +0100
committerVladimír Čunát <vladimir.cunat@nic.cz>2023-11-06 19:37:09 +0100
commita31c0b5a4d4cafea3dc6f2cf0e4cba9e94aca095 (patch)
tree9a57ea49a66671d8ecea45ba5c2b1f930305d43f
parentMerge !1467: doc/upgrading-to-6: nits (diff)
parentMerge !1470: lib/zonecut.c fetch_addr(): resurrect filtering by NO_IPV* (diff)
downloadknot-resolver-a31c0b5a4d4cafea3dc6f2cf0e4cba9e94aca095.tar.xz
knot-resolver-a31c0b5a4d4cafea3dc6f2cf0e4cba9e94aca095.zip
Merge branch 'master' into 6.0
-rw-r--r--.github/workflows/macOS.yaml2
-rw-r--r--NEWS13
-rwxr-xr-xci/gh_actions.py9
-rw-r--r--lib/zonecut.c7
4 files changed, 23 insertions, 8 deletions
diff --git a/.github/workflows/macOS.yaml b/.github/workflows/macOS.yaml
index 821ee56a..c9970645 100644
--- a/.github/workflows/macOS.yaml
+++ b/.github/workflows/macOS.yaml
@@ -8,7 +8,7 @@ jobs:
runs-on: macOS-latest
strategy:
matrix:
- knot-version: ['3.1', '3.2']
+ knot-version: ['3.2', '3.3']
steps:
- name: Checkout resolver code
diff --git a/NEWS b/NEWS
index ba572f01..5732a561 100644
--- a/NEWS
+++ b/NEWS
@@ -9,16 +9,27 @@ You will have to rewrite your configuration. See documentation, in particular:
https://knot.pages.nic.cz/knot-resolver/upgrading-to-6.html
+
+
+Knot Resolver 5.x.y (202y-mm-dd)
+================================
+
+Bugfixes
+--------
+- fix potential SERVFAIL deadlocks if net.ipv6 = false (#880)
+
+
Knot Resolver 5.7.0 (2023-08-22)
================================
Security
--------
-- avoid excessive TCP reconnections in a few more cases (!NNNN)
+- avoid excessive TCP reconnections in a few more cases (!1448)
Like before, the remote server had to behave nonsensically in order
to inflict this upon itself, but it might be abusable for DoS.
We thank Ivan Jedek from OryxLabs for reporting this.
+ CVE-2023-46317 got later assigned to this issue.
Improvements
------------
diff --git a/ci/gh_actions.py b/ci/gh_actions.py
index 8fe05b68..bbeb3b34 100755
--- a/ci/gh_actions.py
+++ b/ci/gh_actions.py
@@ -30,10 +30,11 @@ while time.time() < end_time:
elif response.status_code == 200:
data = json.loads(response.content.decode('utf-8'))
try:
- run = data['workflow_runs'][0]
- conclusion = run['conclusion']
- html_url = run['html_url']
- commit_sha = run['head_sha']
+ for i in range(0, 1): # two runs ATM
+ run = data['workflow_runs'][i]
+ conclusion = run['conclusion']
+ html_url = run['html_url']
+ commit_sha = run['head_sha']
except (KeyError, IndexError):
time.sleep(POLL_DELAY)
continue
diff --git a/lib/zonecut.c b/lib/zonecut.c
index 4ec40367..2bbd26fc 100644
--- a/lib/zonecut.c
+++ b/lib/zonecut.c
@@ -19,8 +19,7 @@
/** Information for one NS name + address type. */
typedef enum {
AI_UNINITED = 0,
- AI_REPUT, /**< Don't use this addrset, due to: cache_rep, NO_IPV6, ...
- * cache_rep approximates various problems when fetching the RRset. */
+ AI_DISABLED, /**< Can't use this addrset. */
AI_CYCLED, /**< Skipped due to cycle detection; see implementation for details. */
AI_LAST_BAD = AI_CYCLED, /** bad states: <= AI_LAST_BAD */
AI_UNKNOWN, /**< Don't know status of this RRset; various reasons. */
@@ -289,9 +288,13 @@ static addrset_info_t fetch_addr(pack_t *addrs, const knot_dname_t *ns, uint16_t
int rdlen;
switch (rrtype) {
case KNOT_RRTYPE_A:
+ if (qry->flags.NO_IPV4)
+ return AI_DISABLED;
rdlen = 4;
break;
case KNOT_RRTYPE_AAAA:
+ if (qry->flags.NO_IPV6 || no6_is_bad())
+ return AI_DISABLED;
rdlen = 16;
break;
default: