O analisador Smile assíncrono `NonBlockingByteArrayParser` aloca um array de bytes com base em um prefixo de comprimento binário bruto proveniente de entrada não confiável, sem um limite superior ou verificação de estouro. Especificamente, ao encontrar o marcador binário bruto 0xFD, a função ` decodeVInt()` calcula o comprimento sem a proteção de estouro utilizada na função `SmileParser. readUnsignedVInt` de bloqueio. Subsequentemente, ` startRawBinary` aloca o comprimento especificado imediatamente. Isso pode permitir que uma entrada pequena desencadeie uma alocação massiva de memória, levando a um `OutOfMemoryError` em endpoints Smile reativos ou assíncronos. Além disso, um VInt (Inteiro Variável) manipulado para estourar um inteiro pode resultar em um comprimento negativo, causando uma `NegativeArraySizeException`. Ambos os cenários podem travar a requisição ou a thread de processamento.