O analisador JSON não bloqueando (assíncrono) no jackson-core não aplica a limitação de MaxNumberLength definida em StreamReadConstraints (predefinido: 1000 caracteres). Um atacante capaz de enviar o JSON a um aplicativo que usa a API de análise assinc pode fornecer um número de símbolo de comprimento arbitrário, levando a uma alocação de memória excessiva e a potencial exaustão da CPU, resultando em uma negação de serviço. O analisador síncrono aplica este limite corretamente, de modo que a constrição é aplicada de forma inconsistente, dependendo de qual API de análise o aplicativo usa. Causa raíz: o caminho de análise de assincínio no Não BloqueioUtf 8 JsonParserBase e classes relacionadas nunca invocam os métodos de validação do comprimento do número. Métodos de análise de números, como _finishNumberIntegralPart() acumular dígitos no TextBuffer sem qualquer verificação de comprimento, então chame _valueComplete() para finalizar o token. _valueComplete() não chama resetInt() ou resetFloat(), que são os métodos em ParserBase onde validamIntegerLength() e validamFPLength() são executados. Porque esse passo de validação é ignorado, o maxNumberLength nunca é aplicado no caminho de código async.
Impacto: um atacante que envia um documento JSON que contém um número arbitrário longo para um aplicativo usando o analisador de assinc (por exemplo, um Spring WebFlux ou outro aplicativo reativo) pode causar uma alocação não limitada no TextBuffer e um OutOfMemoryError. Se o aplicativo subsequentemente chamar getBigIntegerValue() ou getDecimalValue(), o JVM poderá ser adicionalmente amarrado em O(n^) 2 ) BigInteger analisando, causando a negação de serviço baseada na CPU. Não são necessários privilégios ou interação do usuário além da capacidade de enviar dados para análise. Esta questão afeta o com.fasterxml.jackson.core:jackson-core da versão 2.15.0 através 2.18.5 e de 2.19.0 através 2.21.0, e tools.jackson.core:jackson-core from 3.0.0 através 3.0.x.
versões anteriores 2.15.0 não são afetados, porque StreamReadConstraints -- que define a configuração maxNumberLength -- foi introduzida pela primeira vez no jackson-core 2.15.0, assim não existe tal constrição para ser evitada em versões anteriores. Note que GHSA- 72 HV- 8253 - 57 qq registra o limite inferior do afetado 2 gama.x como 2.0.0. Registro de aconselhamento: GHSA- 6 qm 2 - mcq 7 - 53 qp. Identificadores relacionados: CVE- 2026 - 18401.
Tempo: GitHub Advisory Database publicou este registro em 2026 - 08 - 04 T 15: 32: 23.000 Z e lista a sua última modificação como 2026 - 08 - 04 T 15: 32: 23.000 Z. Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 4: CVSS: 4.0 /AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/África do Sul:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X.
Software afetado: o registro de aconselhamento não fornece um pacote normalizado ou faixa de versões. Classificação e evidência: identificadores de fraqueza CWE- 770. O registro contém 4 suporte de referências nestes tipos: WEB, AVISO.