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

VetorAV: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 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2026-46385
GHSA-W8J3-PQ8G-8M7W

Produtos afetados

Avro
Github.Com/Iskorotkov/Avro/V2