GHSA-72hv-8253-57qq, GHSA-r7wm-3cxj-wff9

Data: 2026-08-10

Severity: Medium / High

Riferimenti:

Librerie: - com.fasterxml.jackson.core:jackson-core (embedded shaded in com.hazelcast:hazelcast)

Descrizione

  • GHSA-72hv-8253-57qq: jackson-core: Number Length Constraint Bypass in Async Parser Leads to Potential DoS Condition. La vulnerabilità interessa il parser asincrono NonBlockingJsonParser di Jackson, che non rispetta i limiti di lunghezza configurati per i numeri, esponendo potenzialmente l’applicazione a Denial of Service. Sono affette le versioni di jackson-core precedenti alla 2.18.6 e alla 2.21.1.

  • GHSA-r7wm-3cxj-wff9: jackson-core: Async parser maxNumberLength bypass via chunked digit accumulation (incomplete fix for GHSA-72hv-8253-57qq). The fix released in jackson-core 2.18.6 and 2.21.1 for GHSA-72hv-8253-57qq is incomplete: it did not call validateIntegerLength on the path where the parser runs out of input while still inside MINOR_NUMBER_INTEGER_DIGITS. As a result, an attacker who streams JSON to a non-blocking parser in many small chunks, without ever sending a terminator byte, can keep the parser inside that state indefinitely: the text buffer grows on every chunk and the maxNumberLength limit (1000 by default) is never enforced, the accumulator being gated only by maxStringLength (20 MiB default). Sono affette le versioni di jackson-core precedenti alla 2.18.8 e alla 2.21.4.

Falso Positivo per GovWay

GovWay utilizza com.fasterxml.jackson.core:jackson-core alla versione 2.18.9, già contenente il fix per entrambe le vulnerabilità.

Gli scanner Trivy e Grype rilevano tuttavia entrambe le vulnerabilità anche in hazelcast-5.3.8.jar, che è un fat-jar contenente al proprio interno una copia di jackson-core 2.15.2 rilocata in com/hazelcast/shaded/com/fasterxml/jackson/... (visibile anche dal META-INF/maven/com.fasterxml.jackson.core/jackson-core/pom.properties interno al jar). L’inclusione è effetto del maven-shade-plugin utilizzato in fase di build di Hazelcast, che per default copia integralmente il contenuto della dipendenza shadata, comprese le classi non referenziate dal codice di Hazelcast.

In particolare, è stata verificata l’effettiva presenza fisica delle classi vulnerabili relative al parser asincrono (com/hazelcast/shaded/com/fasterxml/jackson/core/json/async/NonBlockingJsonParser.class, NonBlockingJsonParserBase.class e le interfacce di feeding in com/hazelcast/shaded/com/fasterxml/jackson/core/async/); è stato però altresì verificato, tramite ispezione del bytecode di tutti i .class di Hazelcast non shaded (cioè dell’effettivo codice com.hazelcast.* distinto da com.hazelcast.shaded.*), che nessuna classe Hazelcast invoca o referenzia tali classi async. La serializzazione JSON di Hazelcast utilizza inoltre il parser DOM proprio in com.hazelcast.internal.json, che non condivide il codepath vulnerabile. Anche il codice di GovWay non importa né invoca direttamente le classi shaded.

Le classi vulnerabili sono quindi presenti nell’archivio come bytecode «morto», non raggiungibile da alcun codepath a runtime: il vettore di attacco descritto dagli advisory non è esercitabile nel deploy di GovWay e le segnalazioni costituiscono falsi positivi legati al meccanismo di scansione «ricorsiva» dei jar embedded effettuato dagli scanner.

Configuration Files: