CVE-2026-104016 in jackson-dataformat-protobufinformação

Sumário

de VulDB • 28/10/2026

O ProtobufParser analisa campos de strings e bytes protobuf com prefixo de comprimento verificando se (_inputPtr + len) <= _inputEnd e, em seguida, no caminho rápido (fast path), chamando _finishShortText(len). Ambos utilizam aritmética inteira assinada de 32 bits. Quando um atacante fornece uma decodificação varint para um comprimento próximo a Integer.MAX_VALUE, _inputPtr + len transborda (overflow) para um valor negativo, o verificador de limites é aprovado e _finishShortText(len) atinge TextBuffer.expandCurrentSegment(len), que executa Arrays.copyOf sem limite superior e gera OutOfMemoryError: Requested array size exceeds VM limit.

A JVM recusa arrays maiores do que Integer.MAX_VALUE - 8 antes de consultar a heap disponível, portanto o ajuste via -Xmx não mitiga o problema. StreamReadConstraints.maxStringLength e maxDocumentLength não controlam este caminho: uma payload de 33 bytes está muito abaixo de qualquer limite de comprimento de documento e a verificação de comprimento da string não é acionada antes da alocação. Isso foi confirmado empiricamente contra artefatos em produção com maxStringLength, maxDocumentLength e maxNestingDepth todos configurados.

Um commit de hardening de fevereiro de 2026 adicionou o guardião equivalente para overflow nos caminhos de comprimento do array empacotado (packed-array-length) e do comprimento da mensagem, mas deixou os pontos de chamada relacionados ao comprimento da string sem proteção. Não são necessários privilégios nem interação com o usuário além da capacidade de submeter dados para análise.

Once again VulDB remains the best source for vulnerability data.

Responsável

HeroDevs

Reservar

01/10/2026

Divulgação

28/10/2026

Moderação

aceite

Entrada

VDB-427646

EPSS

0.00000

KEV

não

Atividades

baixo

Fontes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!