PT-2026-41800 · Iskorotkov+1 · Avro+1
Klajok
·
Publicado
2026-05-18
·
Atualizado
2026-05-29
·
CVE-2026-46385
CVSS v4.0
8.7
Alta
| Vetor | AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N |
Nome do Software Vulnerável e Versões Afetadas
iskorotkov/avro versões anteriores a 2.33.0
github.com/hamba/avro/v2 versões anteriores a 2.32.0
Description
Ocorre uma negação de serviço (DoS) remota e não autenticada devido ao esgotamento de CPU nos decodificadores de array e mapa do Avro. O problema surge porque os decodificadores percorrem um valor de contagem de blocos controlado por um invasor sem verificar o estado de erro do leitor subjacente dentro do corpo do loop. Em alvos amd64 e arm64, a função
Reader.ReadBlockHeader retorna a contagem como um int de 64 bits, permitindo que um produtor declare um bloco de até math.MaxInt64 elementos. Se a carga útil for truncada ou terminar com EOF, o decodificador continuará a realizar iterações sem operação até que o loop seja concluído, efetivamente travando um núcleo de CPU até que o processo seja terminado, cancelado por prazo ou encerrado por falta de memória (OOM-killed).Os detalhes técnicos envolvem as seguintes funções vulneráveis:
sliceSkipDecoder.Decode()mapSkipDecoder.Decode()Reader.ReadArrayCB()Reader.ReadMapCB()
Recommendations
Para iskorotkov/avro versões anteriores a 2.33.0, atualize para a versão 2.33.0 ou posterior.
Para github.com/hamba/avro/v2 versões anteriores a 2.32.0, migre para o iskorotkov/avro versão 2.33.0 ou posterior.
Para fornecer defesa em profundidade contra cargas úteis superdimensionadas, configure
Config.MaxByteSliceSize, Config.MaxSliceAllocSize e Config.MaxMapAllocSize para definir limites de alocação explícitos.Exploit
Correção
DoS
Resource Exhaustion
Infinite Loop
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Avro
Github.Com/Iskorotkov/Avro/V2