Hello everyone,
here are some details on the vulnerability (fix) disclosed today.

Impact
======
Some DNS packets might take even a few seconds to process with full CPU utilization, allowing DoS.

Unembargo date
==============
Wednesday 4th December 2019, afternoon GMT

Fixes
=====
Most of the issue can be mitigated by updating libknot dependency to >= 2.9.1.

Otherwise a complete fix was released in Knot Resolver 4.3.0, which also does not require libknot update.
The attached patches are applicable to recent releases (when doc diff is stripped).


[Affected version (required)]:
Knot Resolver <= 4.2.2

[Fixed version (optional)]:
Knot Resolver 4.3.0

[Vulnerability type]:
CWE-407: Inefficient Algorithmic Complexity

[Impact of exploitation]:
Denial of service through high CPU utilization.

[Description of vulnerability]:
DNS replies with very many resource records might be processed very inefficiently, in extreme cases taking even several CPU seconds for each such uncached message.  For example, a few thousand A records can be squashed into one DNS message (limit is 64kB).

To execute an attack it is enough to:
+ own a rogue authoritative server or utilize an existing name with a huge RRset, and
+ trigger DNS query for that name from the resolver to be attacked


Attack Vector (AV): Network
Attack Complexity (AC): Low
Privileges Required (PR): None
User Interaction (UI): None
Scope (S): Unchanged
Confidentiality (C): None
Integrity (I): None
Availability (A): High

Technical Details:
CWE-407

[Reference URL]:
https://gitlab.labs.nic.cz/knot/knot-resolver/tags/v4.3.0

--Vladimir