From d513ae115b41eaeeae12d0ec90682f36572c6d87 Mon Sep 17 00:00:00 2001 From: tako <77hhx8urn@mozmail.com> Date: Fri, 20 Oct 2023 09:54:41 +0800 Subject: [PATCH] fix: Fix slice out-of-bounds issues in ParseUDPMessage. --- core/internal/protocol/proxy.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/internal/protocol/proxy.go b/core/internal/protocol/proxy.go index 19f52f2..87d1b65 100644 --- a/core/internal/protocol/proxy.go +++ b/core/internal/protocol/proxy.go @@ -212,6 +212,9 @@ func ParseUDPMessage(msg []byte) (*UDPMessage, error) { return nil, errors.ProtocolError{Message: "invalid address length"} } bs := buf.Bytes() + if len(bs) < int(lAddr) { + return nil, errors.ProtocolError{Message: "message length mismatch"} + } m.Addr = string(bs[:lAddr]) m.Data = bs[lAddr:] return m, nil