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.
CAddress addr;
    
    CAddress addrBind;
    uint32_t m_mapped_as;
};
/** Transport protocol agnostic message container.
 * Ideally it should only contain receive time, payload,
 * command and size.
 */
class CNetMessage {
public:
    CDataStream m_recv;                  
    int64_t m_time = 0;                  
    bool m_valid_netmagic = false;
    bool m_valid_header = false;
    bool m_valid_checksum = false;
    uint32_t m_message_size = 0;         
    uint32_t m_raw_message_size = 0;     
    std::string m_command;
    CNetMessage(CDataStream&& recv_in) : m_recv(std::move(recv_in)) {}
    void SetVersion(int nVersionIn)
    {
        m_recv.SetVersion(nVersionIn);
    }
};
/** The TransportDeserializer takes care of holding and deserializing the
 * network receive buffer. It can deserialize the network buffer into a
 * transport protocol agnostic CNetMessage (command & payload)
 */
class TransportDeserializer {