diff --git a/src/core/common/tlvs.cpp b/src/core/common/tlvs.cpp index 02893c5d4..a23bc342d 100644 --- a/src/core/common/tlvs.cpp +++ b/src/core/common/tlvs.cpp @@ -128,6 +128,8 @@ otError Tlv::Find(const Message &aMessage, uint8_t aType, uint16_t *aOffset, uin VerifyOrExit(sizeof(ExtendedTlv) <= remainingLen); aMessage.Read(offset, sizeof(ExtendedTlv), &extTlv); + + VerifyOrExit(extTlv.GetLength() <= (remainingLen - sizeof(ExtendedTlv))); size = extTlv.GetSize(); }