From e7430ef23628cf29a6bd28b288b6205bcfd88683 Mon Sep 17 00:00:00 2001 From: healthykim Date: Tue, 17 Mar 2026 17:12:39 +0900 Subject: [PATCH] add fromAddr check --- cmd/devp2p/internal/v5test/framework.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmd/devp2p/internal/v5test/framework.go b/cmd/devp2p/internal/v5test/framework.go index fc3c73dd24..e8b7cb636b 100644 --- a/cmd/devp2p/internal/v5test/framework.go +++ b/cmd/devp2p/internal/v5test/framework.go @@ -229,10 +229,14 @@ func (tc *conn) read(c net.PacketConn) v5wire.Packet { if err := c.SetReadDeadline(time.Now().Add(waitTime)); err != nil { return &readError{err} } - n, _, err := c.ReadFrom(buf) + n, fromAddr, err := c.ReadFrom(buf) if err != nil { return &readError{err} } + // Verify the packet is from an expected remote address. + if fromAddr.String() != tc.remoteAddrFor(c).String() { + return readErrorf("packet from unexpected address %v", fromAddr) + } // Always use remoteAddr for codec session lookup, even if the actual sender // address differs (e.g. in multi-network setups where packets are routed // through a different interface).