In NLnet Labs Unbound 1.22.0 up to and including 1.25.1, client terminated DNS-over-QUIC (DoQ) queries are not accounted properly by Unbound resulting in low-cost inflation of the waiting number of replies for already in-flight resolution queries. This results in degradation of resolution service for new clients for already in-flight queries. A malicious actor can exploit the vulnerability by issuing DoQ queries for query names that need resolution and proceeding on immediately terminating the query by one of STOP_SENDING/RESET_STREAM/CONNECTION_CLOSE QUIC frames. Those terminated DoQ queries are not properly counted for and keep inflating the number of waiting replies for in-flight queries. When the maximum is reached, it results in silent query drops for new clients needing resolution for already in-flight queries. This vulnerability needs Unbound to be compiled with DoQ support ('--with-libngtcp2') and the 'quic-port' to be configured for the listening interfaces. Additionally, a malicious actor needs access to multiple source IPs to bypass the by-default configured 'wait-limit' option.
{
"binaries": [
{
"binary_name": "libunbound8",
"binary_version": "1.13.1-1ubuntu5.16"
},
{
"binary_name": "python3-unbound",
"binary_version": "1.13.1-1ubuntu5.16"
},
{
"binary_name": "unbound",
"binary_version": "1.13.1-1ubuntu5.16"
},
{
"binary_name": "unbound-anchor",
"binary_version": "1.13.1-1ubuntu5.16"
},
{
"binary_name": "unbound-host",
"binary_version": "1.13.1-1ubuntu5.16"
}
]
}{
"binaries": [
{
"binary_name": "libunbound8",
"binary_version": "1.19.2-1ubuntu3.10"
},
{
"binary_name": "python3-unbound",
"binary_version": "1.19.2-1ubuntu3.10"
},
{
"binary_name": "unbound",
"binary_version": "1.19.2-1ubuntu3.10"
},
{
"binary_name": "unbound-anchor",
"binary_version": "1.19.2-1ubuntu3.10"
},
{
"binary_name": "unbound-host",
"binary_version": "1.19.2-1ubuntu3.10"
}
]
}{
"binaries": [
{
"binary_name": "libunbound8",
"binary_version": "1.24.2-1ubuntu2.3"
},
{
"binary_name": "python3-unbound",
"binary_version": "1.24.2-1ubuntu2.3"
},
{
"binary_name": "unbound",
"binary_version": "1.24.2-1ubuntu2.3"
},
{
"binary_name": "unbound-anchor",
"binary_version": "1.24.2-1ubuntu2.3"
},
{
"binary_name": "unbound-host",
"binary_version": "1.24.2-1ubuntu2.3"
}
]
}{
"binaries": [
{
"binary_name": "libunbound8",
"binary_version": "1.25.1-1ubuntu3"
},
{
"binary_name": "python3-unbound",
"binary_version": "1.25.1-1ubuntu3"
},
{
"binary_name": "unbound",
"binary_version": "1.25.1-1ubuntu3"
},
{
"binary_name": "unbound-anchor",
"binary_version": "1.25.1-1ubuntu3"
},
{
"binary_name": "unbound-host",
"binary_version": "1.25.1-1ubuntu3"
}
]
}{
"binaries": [
{
"binary_name": "libunbound2",
"binary_version": "1.4.22-1ubuntu4.14.04.3+esm4"
},
{
"binary_name": "python-unbound",
"binary_version": "1.4.22-1ubuntu4.14.04.3+esm4"
},
{
"binary_name": "unbound",
"binary_version": "1.4.22-1ubuntu4.14.04.3+esm4"
},
{
"binary_name": "unbound-anchor",
"binary_version": "1.4.22-1ubuntu4.14.04.3+esm4"
},
{
"binary_name": "unbound-host",
"binary_version": "1.4.22-1ubuntu4.14.04.3+esm4"
}
]
}{
"binaries": [
{
"binary_name": "libunbound2",
"binary_version": "1.5.8-1ubuntu1.1+esm4"
},
{
"binary_name": "python-unbound",
"binary_version": "1.5.8-1ubuntu1.1+esm4"
},
{
"binary_name": "unbound",
"binary_version": "1.5.8-1ubuntu1.1+esm4"
},
{
"binary_name": "unbound-anchor",
"binary_version": "1.5.8-1ubuntu1.1+esm4"
},
{
"binary_name": "unbound-host",
"binary_version": "1.5.8-1ubuntu1.1+esm4"
}
]
}{
"binaries": [
{
"binary_name": "libunbound2",
"binary_version": "1.6.7-1ubuntu2.6+esm5"
},
{
"binary_name": "python-unbound",
"binary_version": "1.6.7-1ubuntu2.6+esm5"
},
{
"binary_name": "python3-unbound",
"binary_version": "1.6.7-1ubuntu2.6+esm5"
},
{
"binary_name": "unbound",
"binary_version": "1.6.7-1ubuntu2.6+esm5"
},
{
"binary_name": "unbound-anchor",
"binary_version": "1.6.7-1ubuntu2.6+esm5"
},
{
"binary_name": "unbound-host",
"binary_version": "1.6.7-1ubuntu2.6+esm5"
}
]
}{
"binaries": [
{
"binary_name": "libunbound8",
"binary_version": "1.9.4-2ubuntu1.11+esm2"
},
{
"binary_name": "python-unbound",
"binary_version": "1.9.4-2ubuntu1.11+esm2"
},
{
"binary_name": "python3-unbound",
"binary_version": "1.9.4-2ubuntu1.11+esm2"
},
{
"binary_name": "unbound",
"binary_version": "1.9.4-2ubuntu1.11+esm2"
},
{
"binary_name": "unbound-anchor",
"binary_version": "1.9.4-2ubuntu1.11+esm2"
},
{
"binary_name": "unbound-host",
"binary_version": "1.9.4-2ubuntu1.11+esm2"
}
]
}