Librerie incluse in com.hazelcast:hazelcast
Data: 2026-10-15
Severity: Moderate / High
Libreria: com.hazelcast:hazelcast 5.7.0, che include al proprio interno (rilocate in com/hazelcast/shaded/...):
com.fasterxml.jackson.core:jackson-core2.21.2com.fasterxml.jackson.core:jackson-databind2.21.2tools.jackson.core:jackson-core3.1.2tools.jackson.core:jackson-databind3.1.2
Descrizione
Gli scanner Trivy e Grype, analizzando l’immagine di GovWay, rilevano all’interno di hazelcast-5.7.0.jar le librerie Jackson sopra indicate tramite i file META-INF/maven/.../pom.properties presenti nel jar e vi associano i seguenti advisory:
Advisory |
CVE |
Severity |
Descrizione |
|---|---|---|---|
CVE-2026-89425 |
High |
jackson-core: UTF8DataInputJsonParser._reportInvalidToken() missing maxErrorTokenLength limit |
|
CVE-2026-89407 |
High |
jackson-core: ReDoS: quadratic backtracking in NumberInput.PATTERN_FLOAT via looksLikeValidNumber() |
|
CVE-2026-68494 |
High |
jackson-core: Async parser maxNumberLength bypass via chunked digit accumulation |
|
CVE-2026-54512 |
High |
jackson-databind: PolymorphicTypeValidator bypass via generic type parameters |
|
CVE-2026-54513 |
High |
jackson-databind: array subtype allowlist bypass in BasicPolymorphicTypeValidator |
|
CVE-2026-68497 |
High |
jackson-databind: Duration XMLGregorianCalendar Unbounded Number Parse DoS |
|
CVE-2026-91777 |
High |
jackson-databind: quadratic forward-reference completion |
|
CVE-2026-91776 |
High |
jackson-databind: retains every unknown raw type ID |
|
CVE-2026-54514 |
Moderate |
jackson-databind: InetSocketAddress deserialization triggers eager DNS resolution (SSRF) |
|
CVE-2026-77310 |
Moderate |
jackson-databind: incomplete fix for CVE-2026-54514 (InetAddress) |
|
CVE-2026-19032 |
Moderate |
jackson-databind: Path deserialization missing scheme allowlist for FileSystemProvider resolution |
|
CVE-2026-83557 |
Moderate |
jackson-databind: Comparable missing from DefaultBaseTypeLimitingValidator’s unsafe base types |
|
CVE-2026-54515 |
Moderate |
jackson-databind: case-insensitive deserialization bypasses per-property @JsonIgnoreProperties |
|
CVE-2026-54516 |
Moderate |
jackson-databind: renamed @JsonIgnore’d setters can deserialize via private fields |
|
CVE-2026-59888 |
Moderate |
jackson-databind: @JsonIgnore on a Record property is bypassed with a PropertyNamingStrategy |
|
CVE-2026-54517 |
Moderate |
jackson-databind: @JsonView bypass for setterless creator properties |
|
CVE-2026-54518 |
Moderate |
jackson-databind: @JsonView bypass for unwrapped creator parameters |
|
CVE-2026-59889 |
Moderate |
jackson-databind: @JsonView bypassed for @JsonUnwrapped container properties on deserialization |
|
Moderate |
jackson-databind: @JsonView bypass for creator properties with @JsonTypeInfo(include=As.EXTERNAL_PROPERTY) |
Gli advisory su jackson-core interessano sia la copia 2.21.2 che la copia 3.1.2; gli advisory su jackson-databind interessano la copia 2.21.2 e, ad eccezione di GHSA-mhm7-754m-9p8w, anche la copia 3.1.2.
Falso Positivo per GovWay
Le librerie Jackson utilizzate direttamente da GovWay (com.fasterxml.jackson.core:jackson-core e jackson-databind) non sono interessate da nessuno degli advisory indicati.
Le segnalazioni riguardano esclusivamente le copie incluse in hazelcast-5.7.0.jar. Hazelcast non viene distribuito in una versione priva delle librerie incluse: sul repository Maven Central è disponibile il solo jar hazelcast-5.7.0.jar, costruito con il maven-shade-plugin che copia integralmente le dipendenze rilocandole in com.hazelcast.shaded.*, comprese le classi non utilizzate da Hazelcast. Le classi rilocate non sono sostituibili dalle librerie Jackson incluse in GovWay.
L’utilizzo delle copie incluse è stato verificato tramite ispezione del bytecode di tutte le classi di hazelcast-5.7.0.jar esterne ai package com.hazelcast.shaded.*, ricercando sia i riferimenti diretti alle classi sia i riferimenti per nome (reflection, META-INF/services):
com.fasterxml.jackson.core:jackson-core2.21.2,com.fasterxml.jackson.core:jackson-databind2.21.2 etools.jackson.core:jackson-databind3.1.2 non sono referenziate da alcuna classe di Hazelcast; jackson-core 2.21.2 è utilizzata unicamente da jackson-databind 2.21.2. Gli unici riferimenti esterni sono i fileMETA-INF/servicescon cui le librerie registrano le proprie implementazioni, utilizzati solo da chi ne richiede il tipo, cosa che non avviene. Si tratta quindi di bytecode non raggiungibile da alcun codepath a runtime.tools.jackson.core:jackson-core3.1.2 (insieme atools.jackson.jr) è invece utilizzata da Hazelcast esclusivamente per l’elaborazione di documenti JSON memorizzati nelle strutture dati del cluster:creazione dei metadati dei valori di tipo
HazelcastJsonValueinseriti in una mappa (JsonMetadataInitializer, attivo solo per i valori serializzati come JSON);valutazione di query e predicati su attributi di valori JSON (
JsonGetter,JsonDataGettere relativi adapter di navigazione) e partizionamento per attributi JSON (AttributePartitioningStrategy);serializzazione JSON del motore Jet (
com.hazelcast.jet.json), disabilitato per default e non utilizzato.
Il parser asincrono di Jackson (oggetto di GHSA-r7wm-3cxj-wff9) non è utilizzato da alcuna classe di Hazelcast.
GovWay utilizza Hazelcast unicamente per i contatori del rate limiting: le strutture dati contengono esclusivamente chiavi e valori Java di GovWay (IDUnivocoGroupByPolicy, DatiCollezionati e contatori Long), non vengono mai memorizzati valori HazelcastJsonValue, non vengono eseguite query o predicati sulle mappe, non viene utilizzato il partizionamento per attributi e il motore Jet non viene abilitato. I codepath che utilizzano tools.jackson.core:jackson-core non sono quindi raggiungibili tramite le funzionalità di GovWay né tramite le interfacce esposte dal gateway.
Tali codepath potrebbero essere attivati solamente da chi è in grado di collegarsi direttamente alle porte del cluster Hazelcast come member o client, inserendo valori JSON nelle mappe o eseguendo query. Nella Community Edition di Hazelcast non è prevista l’autenticazione dei member e dei client: le porte del cluster devono essere raggiungibili esclusivamente dai nodi GovWay che ne fanno parte e un soggetto in grado di accedervi potrebbe già alterare direttamente i contatori. Tale scenario non rientra pertanto nella superficie di attacco di GovWay e le segnalazioni costituiscono falsi positivi legati alla scansione «ricorsiva» dei jar effettuata dagli scanner.
Configuration Files:
Trivy: trivy.txt
Grype: grype.yaml
OWASP Dependency-Check: false-positive.xml