Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
jackson-check — Auto-vérification des 11 bulletins de sécurité jackson-databind de 2026 : analyse les annotations du code source pour réduire le bruit et vous indique combien vous concernent réellement ; calcule l'intersection bulletin par bulletin pour donner les versions réellement adéquates (2.18.9/2.21.5/3.1.5, et non le 2.21.4 le plus courant dans l'avis de sécurité). CVE-2026-54515 / CVE-2026-54512 | Kitploit
Outils/GitHubGitHub/xiaoqimikko/jackson-check
Scanners de VulnérabilitésAnalyse Statique de Code (SAST)Analyse des VulnérabilitésDevSecOpsSécurité de la Chaîne Logistique
GitHubxiaoqimikko/jackson-check

jackson-check

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

il y a 8 joursPas encore vérifié

Auto-vérification des 11 bulletins de sécurité jackson-databind de 2026 : analyse les annotations du code source pour réduire le bruit et vous indique combien vous concernent réellement ; calcule l'intersection bulletin par bulletin pour donner les versions réellement adéquates (2.18.9/2.21.5/3.1.5, et non le 2.21.4 le plus courant dans l'avis de sécurité). CVE-2026-54515 / CVE-2026-54512

Partager

jackson-check

Outil d'auto-vérification des 11 avis de sécurité jackson-databind 2026. Jar unique zéro dépendance, sans connexion réseau.

Il répond à deux questions auxquelles Dependabot ne peut pas répondre :

  1. Parmi ces 11 avis, lesquels me concernent réellement ? — Analyse votre code source à la recherche des conditions déclenchantes (@JsonView / types polymorphes / correspondance insensible à la casse…), pour passer de « version affectée installée » à « cette fonctionnalité est réellement utilisée ».
  2. Vers quelle version dois-je vraiment migrer ? — Les versions corrigées fournies par les 11 avis sont incohérentes entre elles ; c'est en calculant l'intersection avis par avis qu'on obtient la réponse.
root@kitploit:~
java -jar jackson-check.jar ./target ./src

🔥 Trois conclusions issues de tests réels (chacune reproductible)

1. Passer à la version la plus fréquente dans les avis laisse encore trois avis concernés

Sur les 11 avis de 2026, 8 indiquent une version corrigée en 2.21.4 / 2.18.8 / 3.1.4. Ceux qui suivent ces versions pensent avoir tout corrigé.

La réponse réelle, en calculant l'intersection avis par avis, est la suivante :

Les trois avis qui imposent la cible la plus élevée sont ceux-ci :

  • CVE-2026-54515 — contournement de la désérialisation insensible à la casse pour @JsonIgnoreProperties propriété par propriété

  • CVE-2026-59889 — @JsonView inefficace sur les propriétés de conteneur @JsonUnwrapped

  • 🔴 GHSA-mhm7-754m-9p8w — aucun numéro CVE, le texte même de l'avis l'indique :

    le correctif n'a jamais été rétroporté vers 2.21 ou 2.18 … les utilisateurs de 2.21.4 et 2.18.8 qui ont fait la mise à jour conformément aux avis publiés restent vulnérables

C'est une lacune de correctif : la branche 3.x a corrigé, mais le rétroportage vers 2.18 / 2.21 a été oublié. Comme il n'y a pas de numéro CVE, une recherche par numéro CVE ne le trouve pas.

Un simple lancement suffit pour le voir :

root@kitploit:~
# Projet déjà monté en 2.21.4
java -jar jackson-check.jar ./lib ./src
#   Dependabot vous signale : 3 avis
#   🔥 Attention : si vous montez vers la version corrigée la plus fréquente dans les avis, les 3 suivants restent concernés

2. Jackson 3 a changé de groupId, et les avis mélangent les plages de versions des deux coordonnées

CoordonnéeRéellement publié sur Maven Central
com.fasterxml.jackson.core:jackson-databinduniquement 2.x
tools.jackson.core:jackson-databinduniquement 3.x

Dans les champs structurés des avis, en revanche :

  • la coordonnée com.fasterxml.jackson.core porte 6 plages 3.x, avec une version corrigée 3.1.4 → HTTP 404 pour cette coordonnée
  • la coordonnée tools.jackson.core porte 1 plage 2.x, avec une version corrigée 2.21.4 → là encore HTTP 404

Un outil qui recopie les avis vous fera installer un artefact qui n'existe pas. Lors de la génération de la table de décision, cet outil vérifie la disponibilité réelle par des requêtes HEAD individuelles ; ce qui est introuvable est signalé dans le rapport, jamais proposé comme mise à jour.

Pour les deux coordonnées, l'artifactId et le nom du fichier jar sont strictement identiques ; seul META-INF permet de les distinguer — c'est pourquoi cet outil juge sur la coordonnée, et non sur le nom de fichier.

3. Réduction du bruit : la plupart des 11 avis ne s'appliquent qu'aux codes qui utilisent la fonctionnalité correspondante

Pour un même 2.18.5, deux codes donnent des résultats totalement différents :

root@kitploit:~
Un code utilisant types polymorphes + @JsonView   → Dependabot signale 7 avis, 6 réellement applicables
Un code qui ne fait que new ObjectMapper          → Dependabot signale 7 avis, 0 réellement applicable

🔴 Ce que cet outil ne peut pas prouver

Les deux sens doivent être précisés ; n'en mentionner qu'un seul serait trompeur :

① « Aucune condition déclenchante trouvée » ne veut pas dire sûr. Trois situations peuvent rendre cette conclusion faussement rassurante :

  1. La bibliothèque tierce dont vous dépendez utilise ces annotations dans son propre code — nous ne pouvons pas analyser son code source ;
  2. Les annotations peuvent être ajoutées à l'exécution via des mixins (ObjectMapper.addMixIn) etc., le terme n'apparaissant pas du tout dans le code source ;
  3. Vous n'avez peut-être tout simplement pas fourni de répertoire de code source.

② « Toutes les conditions déclenchantes sont réunies » ne veut pas non plus dire que vous êtes touché. Les marqueurs sont agrégés sur l'ensemble du dépôt de code, pas sur la même classe ni le même champ. Par exemple, un avis exige que @JsonView et @JsonUnwrapped soient posés sur la même propriété, alors que nous pouvons seulement constater que ces deux termes apparaissent dans votre code.

Cet outil ne fait que de la correspondance textuelle, pas d'analyse AST. C'est un compromis délibéré : le chemin critique doit pouvoir être lu et vérifié par un humain — une décision basée sur un AST incompréhensible, si elle est erronée, ne serait détectée par personne.

La détermination de version (première étape) est fiable ; la détermination des conditions déclenchantes (deuxième étape) sert uniquement à hiérarchiser, pas à écarter le risque.

Sur l'angle mort de Dependabot : aucun des 11 avis de cette fournée n'y échappe. La page des avis du dépôt officiel en contient 11, et l'interrogation inverse sur les deux coordonnées en totalise également 11 : l'écart est de 0 — c'est une conclusion obtenue après avoir consulté les deux sources, pas une valeur par défaut issue d'une seule source (le ASSERT2 de tools/gen_rules.py revérifie à chaque exécution). Les alertes de version de Dependabot sont donc exactes pour cette fournée ; la valeur de cet outil réside dans la réduction du bruit et le calcul de l'intersection, pas dans le comblement des lacunes.


Utilisation

root@kitploit:~
java -jar jackson-check.jar <chemin...> [options]

  <chemin>      jar / war / répertoire. Le répertoire recherche à la fois les artefacts de construction (pour la version) et les sources .java (pour les conditions déclenchantes)
  --src <chemin>  indique en plus un répertoire de sources
  --no-src       ne pas analyser les sources (jugement par version uniquement, granularité identique à Dependabot)
  --all          liste aussi les entrées non concernées
  -v, --version affiche la version
  -h, --help     affiche l'aide

Codes de sortie : 0 = aucune version affectée · 2 = version affectée mais aucune condition déclenchante trouvée dans le code source (ou sources non analysées) · 3 = conditions déclenchantes également présentes. Utilisable directement en CI.

Formats reconnus : jar ordinaire, fat jar Spring Boot (BOOT-INF/lib/), WAR classique (WEB-INF/lib/), jackson intégré par shading dans un jar hôte (coordonnée de dépendance invisible, mais META-INF/maven toujours présent).

root@kitploit:~
# Projet Maven
mvn package && java -jar jackson-check.jar target src

# Un seul jar final
java -jar jackson-check.jar app.jar

# Projet Gradle
java -jar jackson-check.jar build/libs src/main/java

Nécessite Java 17+. Zéro dépendance à l'exécution — en particulier, ne dépend pas de jackson lui-même.


La table de décision est générée, pas recopiée à la main

tools/gen_rules.py génère CveTable.java à partir de deux sources primaires :

  • Source A /repos/FasterXML/jackson-databind/security-advisories — l'ensemble complet des avis publiés par les mainteneurs + le texte original des descriptions
  • Source B /advisories?ecosystem=maven&affects=<coordonnée> — l'index des coordonnées réellement utilisé par Dependabot (une requête pour chaque groupId)

Les 11 avis sont déployés en 37 règles « avis × coordonnée × plage de versions », avec 13 assertions ; si l'une d'elles n'est pas satisfaite, le processus s'arrête et aucun fichier n'est écrit — afin d'éviter qu'un échec d'analyse ne génère une table vide alors que les tests restent tous verts :

root@kitploit:~
python tools/gen_rules.py      # nécessite une CLI gh authentifiée

56 tests unitaires + 7 scénarios de bout en bout sur de vrais artefacts (vrais jars : 2.13.0 / 2.18.5 / 2.21.2 / 2.21.4 / 2.21.5 / 3.1.2 / 3.1.5).


Avis couverts


License

Apache-2.0

Télécharger l’outil
Branche maintenueLa plus fréquente dans les avisVersion réellement correcte
2.18.x2.18.82.18.9
2.21.x2.21.42.21.5
2.22.x—2.22.1
3.1.x3.1.43.1.5
3.2.x—3.2.1
Condition déclenchanteAvis associés
@JsonViewCVE-2026-54517 / 54518 / 59889 / GHSA-mhm7
@JsonTypeInfo / activateDefaultTyping / PolymorphicTypeValidatorCVE-2026-54512 / 54513
@JsonIgnoreProperties + ACCEPT_CASE_INSENSITIVE_PROPERTIESCVE-2026-54515
@JsonIgnore + renommage @JsonPropertyCVE-2026-54516
Java Record + PropertyNamingStrategy + @JsonIgnoreCVE-2026-59888
champ InetSocketAddressCVE-2026-54514
readTree() + JsonNode.toString()CVE-2026-50193
AssertionVérifie
ASSERT2⭐ comparaison de l'angle mort entre les deux sources : l'écart doit être 0 ou être expliqué ligne par ligne
ASSERT6les deux groupId doivent être couverts
ASSERT7chaque version corrigée est sondée par requête HEAD individuelle pour vérifier sa disponibilité sur Maven Central
ASSERT8fantôme bidirectionnel : récupère maven-metadata.xml pour prouver que toute la ligne de version majeure n'existe pas pour cette coordonnée
ASSERT9calcule l'intersection branche par branche, et doit réellement dépasser la version corrigée minimale de la même branche
ASSERT11la chaîne d'ancrage de chaque condition déclenchante doit apparaître mot pour mot dans le texte original de la description officielle
ASSERT12chaque avis doit avoir un score CVSS (union des deux sources)
IdentifiantSévéritéSujet
CVE-2026-54512high 8.1contournement des paramètres génériques de PolymorphicTypeValidator
CVE-2026-54513high 8.1contournement de la liste blanche pour les sous-types de tableaux allowIfSubTypeIsArray()
CVE-2026-50193medium 7.5débordement de pile JsonNode.toString() sur imbrication profonde
CVE-2026-54514medium 5.3la désérialisation d'InetSocketAddress déclenche une résolution DNS (SSRF)
CVE-2026-54515medium 5.3la reconstruction insensible à la casse écrase @JsonIgnoreProperties
CVE-2026-54516medium 5.3un setter @JsonIgnore renommé reste accessible en écriture via le champ privé
CVE-2026-54517medium 5.3@JsonView inefficace sur les propriétés de creator sans setter
CVE-2026-54518medium 6.5@JsonView inefficace sur les paramètres de creator unwrapped
CVE-2026-59888medium 6.5@JsonIgnore sur une propriété de Record contourné par la stratégie de nommage
CVE-2026-59889medium 6.5@JsonView inefficace sur les propriétés de conteneur @JsonUnwrapped
GHSA-mhm7-754m-9p8wmedium 6.5Aucun numéro CVE · lacune de correctif @JsonView + As.EXTERNAL_PROPERTY