bind9/lib/dns
Aram Sargsyan baa9698c9d Fix RRL responses-per-second bypass using wildcard names
It is possible to bypass Response Rate Limiting (RRL)
`responses-per-second` limitation using specially crafted wildcard
names, because the current implementation, when encountering a found
DNS name generated from a wildcard record, just strips the leftmost
label of the name before making a key for the bucket.

While that technique helps with limiting random requests like
<random>.example.com (because all those requests will be accounted
as belonging to a bucket constructed from "example.com" name), it does
not help with random names like subdomain.<random>.example.com.

The best solution would have been to strip not just the leftmost
label, but as many labels as necessary until reaching the suffix part
of the wildcard record from which the found name is generated, however,
we do not have that information readily available in the context of RRL
processing code.

Fix the issue by interpreting all valid wildcard domain names as
the zone's origin name concatenated to the "*" name, so they all will
be put into the same bucket.
2022-09-08 09:15:30 +02:00
..
include Fix RRL responses-per-second bypass using wildcard names 2022-09-08 09:15:30 +02:00
rdata Shrink decompression contexts 2022-06-01 13:00:40 +01:00
.gitignore 4394. [func] Add rndc command "dnstap-reopen" to close and 2016-06-24 09:37:04 +10:00
acl.c Add isc_rwlock around dns_aclenv .localhost and .localnets member 2022-04-04 19:27:00 +02:00
adb.c Update netmgr, tasks, and applications to use isc_loopmgr 2022-08-26 09:09:24 +02:00
badcache.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
byaddr.c Remove dns_lookup and unused functions in dns_byaddr 2022-05-25 14:44:32 +02:00
cache.c Update netmgr, tasks, and applications to use isc_loopmgr 2022-08-26 09:09:24 +02:00
callbacks.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
catz.c Update netmgr, tasks, and applications to use isc_loopmgr 2022-08-26 09:09:24 +02:00
client.c Update netmgr, tasks, and applications to use isc_loopmgr 2022-08-26 09:09:24 +02:00
clientinfo.c allow dns_clientinfo to store client ECS data 2022-01-27 13:53:59 -08:00
compress.c Clean up remaining references to global compression 2022-06-01 13:00:40 +01:00
db.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:33:43 +01:00
dbiterator.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
diff.c dns_rdatalist_tordataset() and dns_rdatalist_fromrdataset() can not fail 2022-08-09 08:19:51 +00:00
dispatch.c remove unnecessary assertion in dns_dispatch_connect() 2022-07-14 16:31:01 -07:00
dlz.c Set hard thread affinity for each zone 2022-04-01 23:50:34 +02:00
dns64.c Add isc_rwlock around dns_aclenv .localhost and .localnets member 2022-04-04 19:27:00 +02:00
dnsrps.c Simplify way we tag unreachable code with only ISC_UNREACHABLE() 2022-03-25 08:33:43 +01:00
dnssec.c dns_rdatalist_tordataset() and dns_rdatalist_fromrdataset() can not fail 2022-08-09 08:19:51 +00:00
dnstap.c dnstap query_message field was erroneously set with responses 2022-08-31 11:33:25 -07:00
dnstap.proto Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
ds.c Simplify way we tag unreachable code with only ISC_UNREACHABLE() 2022-03-25 08:33:43 +01:00
dst_api.c Require valid key for dst_key functions 2022-05-23 11:36:36 +02:00
dst_internal.h Check if key metadata is modified before writing 2022-05-13 13:31:17 +02:00
dst_openssl.h Use autoconf check for BN_GENCB_new() 2022-03-02 10:48:09 +00:00
dst_parse.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
dst_parse.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
dyndb.c Update isc_timer to use isc_loopmgr 2022-08-25 17:17:07 +02:00
ecs.c Simplify way we tag unreachable code with only ISC_UNREACHABLE() 2022-03-25 08:33:43 +01:00
fixedname.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
forward.c Cleanup dns_fwdtable_delete() 2022-06-09 10:47:04 +00:00
gen.c Merge lib/dns/gen.h contents to lib/dns/gen.c 2022-03-04 14:13:58 +01:00
geoip2.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
gssapi_link.c Remove a redundant variable-length array 2022-03-18 15:06:31 +00:00
gssapictx.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:33:43 +01:00
hmac_link.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:33:43 +01:00
ipkeylist.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
iptable.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
journal.c Shrink decompression contexts 2022-06-01 13:00:40 +01:00
kasp.c Store built-in dnssec-policies in defaultconf 2022-06-28 11:56:31 +02:00
key.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
keydata.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
keymgr.c Nit changes in keymgr and kasp 2022-06-28 11:56:31 +02:00
keytable.c Add synth-from-dnssec namespaces for keytable entries 2022-07-05 12:29:01 +10:00
log.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
Makefile.am Update libdns_la_LIBADD rather than libdns_la_LDFLAGS 2022-07-13 00:14:13 +00:00
master.c dns_rdatalist_tordataset() and dns_rdatalist_fromrdataset() can not fail 2022-08-09 08:19:51 +00:00
masterdump.c Update netmgr, tasks, and applications to use isc_loopmgr 2022-08-26 09:09:24 +02:00
message.c Silence REVERSE_INULL 2022-09-06 12:47:08 +00:00
name.c Don't compress in the rrset if compression was disabled 2022-07-11 12:26:15 +02:00
ncache.c dns_rdatalist_tordataset() and dns_rdatalist_fromrdataset() can not fail 2022-08-09 08:19:51 +00:00
nsec.c Wait with NSEC3 during a DNSSEC policy change 2022-08-22 15:55:46 +02:00
nsec3.c nsec3.c: Add a missing dns_db_detachnode() call 2022-08-23 11:01:31 +02:00
nta.c Update netmgr, tasks, and applications to use isc_loopmgr 2022-08-26 09:09:24 +02:00
openssl_link.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
openssl_shim.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
openssl_shim.h Remove DH_clear_flags call 2022-07-18 13:38:47 +02:00
openssldh_link.c Remove DH_clear_flags call 2022-07-18 13:38:47 +02:00
opensslecdsa_link.c Simplify way we tag unreachable code with only ISC_UNREACHABLE() 2022-03-25 08:33:43 +01:00
openssleddsa_link.c Add couple missing braces around single-line statements 2022-03-17 18:27:45 +01:00
opensslrsa_link.c Check that we can verify a signature at initialisation time 2022-07-25 10:32:13 -04:00
order.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:33:43 +01:00
peer.c Simplify way we tag unreachable code with only ISC_UNREACHABLE() 2022-03-25 08:33:43 +01:00
private.c Increase the BUFSIZ-long buffers 2022-07-15 10:33:46 +00:00
rbt.c Remove unused rbtnode->rpz flag 2022-05-02 19:47:58 +01:00
rbtdb.c Fix rndc dumpdb -expired for stuck cache contents 2022-07-25 16:05:21 +02:00
rbtdb.h Remove remaining checks for rbt64 2022-05-03 00:41:42 +01:00
rcode.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
rdata.c Shrink decompression contexts 2022-06-01 13:00:40 +01:00
rdatalist.c dns_rdatalist_tordataset() and dns_rdatalist_fromrdataset() can not fail 2022-08-09 08:19:51 +00:00
rdatalist_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
rdataset.c There can no longer be multiple compression methods 2022-06-01 13:00:40 +01:00
rdatasetiter.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
rdataslab.c Clean up #include <isc/string.h> 2022-05-03 12:38:59 +00:00
request.c dns_rdatalist_tordataset() and dns_rdatalist_fromrdataset() can not fail 2022-08-09 08:19:51 +00:00
resolver.c Update netmgr, tasks, and applications to use isc_loopmgr 2022-08-26 09:09:24 +02:00
result.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
rootns.c Clean up #include <isc/string.h> 2022-05-03 12:38:59 +00:00
rpz.c Add extended DNS error configuration option for RPZ zones 2022-08-31 08:56:03 +00:00
rriterator.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
rrl.c Fix RRL responses-per-second bypass using wildcard names 2022-09-08 09:15:30 +02:00
sdb.c Update isc_timer to use isc_loopmgr 2022-08-25 17:17:07 +02:00
sdlz.c dns_rdatalist_tordataset() and dns_rdatalist_fromrdataset() can not fail 2022-08-09 08:19:51 +00:00
soa.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:33:43 +01:00
ssu.c Add isc_rwlock around dns_aclenv .localhost and .localnets member 2022-04-04 19:27:00 +02:00
ssu_external.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
stats.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:33:43 +01:00
tests Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
time.c Clean up #include <isc/string.h> 2022-05-03 12:38:59 +00:00
tkey.c Refactor tkey.c:buildquery() error handling 2022-08-16 07:36:12 +00:00
transport.c Rename "hostname" to "remote-hostname" within "tls" 2022-05-03 17:15:43 +03:00
tsec.c Simplify way we tag unreachable code with only ISC_UNREACHABLE() 2022-03-25 08:33:43 +01:00
tsig.c dns_rdatalist_tordataset() and dns_rdatalist_fromrdataset() can not fail 2022-08-09 08:19:51 +00:00
tsig_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
ttl.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
update.c Create per-thread task and memory context for zonemgr 2022-04-01 23:50:34 +02:00
validator.c the validator can attach to the view normally 2022-05-13 13:36:10 -07:00
view.c Update netmgr, tasks, and applications to use isc_loopmgr 2022-08-26 09:09:24 +02:00
xfrin.c Remove dead code in xfrin.c 2022-09-06 12:47:08 +00:00
zone.c Update netmgr, tasks, and applications to use isc_loopmgr 2022-08-26 09:09:24 +02:00
zone_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
zonekey.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
zoneverify.c Eliminate a variable that can confuse the compiler 2022-05-02 21:11:12 +01:00
zt.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00