Browse Source

Merge pull request #5442

dca799e Ignore getaddr messages on Outbound connections. (Ivan Pustogarov)
0.13
Wladimir J. van der Laan 10 years ago
parent
commit
c1b723c30a
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 7
      src/main.cpp

7
src/main.cpp

@ -4021,7 +4021,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, @@ -4021,7 +4021,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
}
else if (strCommand == "getaddr")
// This asymmetric behavior for inbound and outbound connections was introduced
// to prevent a fingerprinting attack: an attacker can send specific fake addresses
// to users' AddrMan and later request them by sending getaddr messages.
// Making users (which are behind NAT and can only make outgoing connections) ignore
// getaddr message mitigates the attack.
else if ((strCommand == "getaddr") && (pfrom->fInbound))
{
pfrom->vAddrToSend.clear();
vector<CAddress> vAddr = addrman.GetAddr();

Loading…
Cancel
Save