aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authore0 <ethan.r.heilman@gmail.com>2018-03-06 18:26:29 -0500
committerfanquake <fanquake@gmail.com>2018-04-26 23:43:54 +0800
commitf60e84dba4723bc658ecc70f8b17db2619eb7e20 (patch)
treec1cb459eb63ebc71172285c0c285dba80cf8de1a
parent9ea62a3dc4bd50a139e6d3c72e4f94d909ef10f3 (diff)
downloadbitcoin-f60e84dba4723bc658ecc70f8b17db2619eb7e20.tar.xz
Limit the number of IPs we use from each DNS seeder
A risk exists where a malicious DNS seeder eclipses a node by returning an enormous number of IP addresses. In this commit we mitigate this risk by limiting the number of IP addresses addrman learns to 256 per DNS seeder. GitHub-Pull: #12626 Rebased-From: 46e7f80
-rw-r--r--src/net.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/net.cpp b/src/net.cpp
index 5f4c0eecab..ff68b182f0 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -1619,7 +1619,8 @@ void CConnman::ThreadDNSAddressSeed()
if (!resolveSource.SetInternal(host)) {
continue;
}
- if (LookupHost(host.c_str(), vIPs, 0, true))
+ unsigned int nMaxIPs = 256; // Limits number of IPs learned from a DNS seed
+ if (LookupHost(host.c_str(), vIPs, nMaxIPs, true))
{
for (const CNetAddr& ip : vIPs)
{