From 0c85dc30e6b628f7538a67776c7eefcb84ef4f82 Mon Sep 17 00:00:00 2001 From: Martin Zumsande Date: Mon, 29 Nov 2021 16:33:00 +0100 Subject: [PATCH] p2p: Don't use timestamps from inbound peers This makes it harder for others to tamper with our adjusted time. --- src/net_processing.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/net_processing.cpp b/src/net_processing.cpp index a896bb76aee..ebabba5c784 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -2683,7 +2683,11 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type, int64_t nTimeOffset = nTime - GetTime(); pfrom.nTimeOffset = nTimeOffset; - AddTimeData(pfrom.addr, nTimeOffset); + if (!pfrom.IsInboundConn()) { + // Don't use timedata samples from inbound peers to make it + // harder for others to tamper with our adjusted time. + AddTimeData(pfrom.addr, nTimeOffset); + } // If the peer is old enough to have the old alert system, send it the final alert. if (greatest_common_version <= 70012) {