diff --git a/src/public/dt_utlvector_recv.cpp b/src/public/dt_utlvector_recv.cpp index 3198d9f6d6b..0ac42340920 100644 --- a/src/public/dt_utlvector_recv.cpp +++ b/src/public/dt_utlvector_recv.cpp @@ -36,7 +36,11 @@ void RecvProxy_UtlVectorLength( const CRecvProxyData *pData, void *pStruct, void // to write arbitrary data to out of bounds memory. // There isn't much we can do at this point - we're deep in the networking stack, it's hard to recover // gracefully and we shouldn't be talking to this server anymore. - // So we crash. + // + // So we notify client. + Error("Server send utlvector length value %d which is not in range [%d...%d]. Crashing client to prevent RCE...\n", + pData->m_Value.m_Int, 0, pExtra->m_nMaxElements); + // And crash. *(int *) 1 = 2; } pExtra->m_ResizeFn( pStruct, pExtra->m_Offset, pData->m_Value.m_Int );