This is a well known (long standing) issue. Documented in the code base in commit eea02be70ee37b845f2719b3c08e5baf4b6f51f6.

Countless intermittent sanitizer warnings can be attributed to it.
{
    
    unsigned int nRemaining = 24 - nHdrPos;
    unsigned int nCopy = std::min(nRemaining, nBytes);
    memcpy(&hdrbuf[nHdrPos], pch, nCopy);
    nHdrPos += nCopy;
    
    if (nHdrPos < 24)
        return nCopy;
    
    try {
        hdrbuf >> hdr;
    }
    catch (const std::exception&) {
        return -1;
    }
    
    if (hdr.nMessageSize > MAX_SIZE || hdr.nMessageSize > MAX_PROTOCOL_MESSAGE_LENGTH) {
        return -1;
    }
    
    in_data = true;
    return nCopy;
}
int V1TransportDeserializer::readData(const char *pch, unsigned int nBytes)