O problema está relacionado à função read section as string(), que espera que um nome de fonte tenha, no máximo, um comprimento de UINT32 MAX - 1 bytes, mas não verifica isso antes de prosseguir com a alocação do buffer. Isso pode levar a um estouro aritmético, alocação de tamanho zero e, posteriormente, estouro de buffer baseado em heap quando um arquivo de fonte malicioso com um nome de comprimento UINT32 MAX é criado. Um invasor pode explorar isso para comprometer a integridade dos dados ou causar uma negação de serviço.