The vulnerability lies in the BMP parser of GoBGP, specifically within the ParseBody methods for BMPStatisticsReport and BMPPeerUpNotification. The patch bc77597d42335c78464bc8e15a471d887bbdf260 reveals that these functions were reading from a byte slice (data) without first validating its length. For BMPStatisticsReport.ParseBody, the code read 4 bytes to get a count, and for BMPPeerUpNotification.ParseBody, it could read up to 16 bytes for an IP address. An attacker could send a crafted, short BMP message, causing the application to read beyond the bounds of the provided buffer. This leads to an out-of-bounds read, which could cause a panic and denial of service. The fix involves adding length checks at the beginning of both functions to ensure the data slice is large enough for the subsequent read operations, thus preventing the out-of-bounds access.