Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
fastjson-check — Zero-dependency, offline CLI scanner that finds fastjson inside JARs and Spring Boot fat-JARs, flags CVE-2026-16723 exposure, and detects shaded dependencies for CI gating. | Kitploit
Outils/GitHubGitHub/xiaoqimikko/fastjson-check
Vulnerability ScannersVulnerability AnalysisDevSecOpsSupply Chain Security
GitHubxiaoqimikko/fastjson-check

fastjson-check

Zero-dependency, offline CLI scanner that finds fastjson inside JARs and Spring Boot fat-JARs, flags CVE-2026-16723 exposure, and detects shaded dependencies for CI gating.

Voir le dépôt
il y a 9 joursPas encore vérifié

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 →
Partager

fastjson-check

Release Downloads License Java

Une seule commande pour déterminer si votre application Java contient fastjson, où il se cache et si elle est affectée par CVE-2026-16723.

Zéro dépendance · Entièrement hors ligne · Un seul jar de 23 Ko · Compatible Java 8+

English | Téléchargement


Pourquoi cet outil

Le 21 juillet 2026, l'équipe officielle de fastjson a publié CVE-2026-16723 (CVSS 9.0, exécution de code à distance) :

  • Affecte fastjson 1.2.68 ~ 1.2.83
  • Exploitable avec la configuration par défaut — pas besoin d'activer AutoType, pas besoin de gadget dans le classpath, pas besoin d'authentification
  • Des exploitations dans la nature sont apparues en quelques jours, ciblant principalement les déploiements Spring Boot fat-JAR

⚠️ Le correctif officiel 1.2.84 est publié, mais presque personne ne le sait

De nombreux avis de sécurité (y compris plusieurs médias de sécurité anglophones) affirment encore aujourd'hui que « la branche 1.x est EOL, il n'y aura jamais de correctif, il faut migrer vers fastjson2 ». Cette affirmation n'est plus valable depuis le 2026-07-29. À vérifier par vous-même :

PreuveLien
Le dépôt central Maven contient com.alibaba:fastjson:1.2.84, jar mis en ligne le 2026-07-29repo1
Release GitHub 1.2.84, publiée le 2026-07-29T08:24:51Zrelease
Commit clé fix: strengthen autoType type name validation and whitelist verification2026-07-29T07:02:55Z

La 1.2.83 est sortie en mai 2022 ; depuis, la branche 1.x est restée quatre ans sans aucun commit — la 1.2.84 est une publication exceptionnelle dédiée à cette vulnérabilité.

Le titre de sa release n'indique pas de correctif de sécurité : celui de la 1.2.83 mentionnait « (correctif de sécurité) », tandis que la 1.2.84 indique seulement « Publication de la version 1.2.84 ». Mais le corps du texte le mentionne — il contient une section complète Security Fixes, énumérant quatre renforcements d'AutoType, et c'est ainsi depuis le jour de la publication (2026-07-29) (vérifiable dans l'archive Wayback 20260729094935).

Quant à la raison pour laquelle la plupart des avis de sécurité et des scanners n'ont toujours pas suivi après la publication du correctif, je ne l'ai pas déterminée et je ne fais aucune supposition ici.

📌 Correction du 2026-08-14 : il était écrit ici « le texte ne mentionne nulle part la sécurité, d'où l'absence de suivi ». La première moitié s'est révélée fausse après vérification du corps de la release et de l'archive Wayback du jour même (seul le titre ne l'indiquait pas) ; la seconde moitié perd donc aussi sa base et a été supprimée.

👉 Impact concret pour les utilisateurs de 1.x : passer à 1.2.84 est la remédiation la moins coûteuse (même branche, version mineure, généralement sans modification de code), sans être contraint de migrer immédiatement vers la version majeure fastjson2. Cet outil formule ses recommandations en ce sens.

⚠️ Sous réserve d'un JDK 8 ou supérieur (vérifié le 2026-10-14) : les 274 classes de la 1.2.84 sont toutes en bytecode Java 8 (major 52), alors que la 1.2.83 est en Java 5 (major 49). Sur un JDK 7 (Zulu 7u352), javac n'émet qu'un avertissement avec un code de sortie 0, mais à l'exécution il lève directement UnsupportedClassVersionError: com/alibaba/fastjson/JSON : Unsupported major.minor version 52.0. Autre point : la constante JSON.VERSION dans la 1.2.84 vaut toujours "1.2.83", ce qui fausse la détection de version si on s'y fie ; cet outil lit pom.properties et n'est pas affecté.

Et le point le plus délicat :

fastjson est généralement une dépendance transitive — personne ne l'installe volontairement, il est amené par une autre bibliothèque. Beaucoup d'équipes ignorent totalement qu'elles l'utilisent.

mvn dependency:tree peut lister les dépendances, mais reste impuissant dans deux cas :

  1. Vous ne disposez que d'un fat-JAR déjà empaqueté, sans code source ni environnement de build (le scénario le plus courant lors d'une investigation d'urgence en production)
  2. fastjson a été shadé dans le jar d'un SDK, et n'apparaît pas du tout dans l'arbre des dépendances

Cet outil a été écrit pour ces deux cas.

Démarrage rapide

Téléchargez fastjson-check.jar depuis Releases, puis :

# 扫一个 jar(Spring Boot fat-JAR 会自动逐层展开)
java -jar fastjson-check.jar ./myapp.jar

# 扫一整个目录(递归查找所有 jar/war)
java -jar fastjson-check.jar /opt/apps

# 输出 JSON,接入流水线
java -jar fastjson-check.jar /opt/apps --json

Aucune installation, aucun compte, aucune connexion réseau, aucune donnée téléversée.

Exécution en tant que plugin Maven (depuis la version 0.3.0)

Le même artefact est à la fois une CLI et un plugin Maven. Cette utilisation ne nécessite pas de télécharger le jar au préalable :

# 在你的项目目录下直接跑,扫的是 Maven 解析后的依赖
mvn io.github.xiaoqimikko:fastjson-check:0.3.1:check

ou lier au cycle de vie de build (phase verify) :

<plugin>
  <groupId>io.github.xiaoqimikko</groupId>
  <artifactId>fastjson-check</artifactId>
  <version>0.3.1</version>
  <executions>
    <execution>
      <goals><goal>check</goal></goals>
    </execution>
  </executions>
</plugin>

Pourquoi le mode plugin est plus précis que laisser le CLI scanner pom.xml

Lorsque le CLI scanne pom.xml, il lit du texte, or dans un vrai projet la version de fastjson ne figure souvent pas dans ce texte :

  • Écrite sous forme de propriété : <version>${fastjson.version}</version>
  • Héritée de <parent>, cette ligne n'existe pas dans votre propre pom
  • Le cas le plus fréquent : c'est une dépendance transitive apportée par une autre bibliothèque, votre pom ne mentionne pas fastjson du tout

Le plugin obtient l'ensemble des dépendances Maven après résolution, chaque dépendance portant le chemin réel du jar dans le dépôt local. On emprunte donc précisément la voie que cet outil maîtrise le mieux : scanner com/alibaba/fastjson(2)/JSON.class dans le vrai jar, plutôt que de croire ce qui est écrit dans le pom.

⚠️ Mais la frontière de détection ne change pas pour autant : la clé de décision reste ce chemin de classe, donc les dépendances relocalisées (relocate) / repackagées avec un nom de paquet modifié restent indétectables (voir « Ce qu'il n'est pas » ci-dessous). Le plugin résout la question « où la version est-elle écrite », pas « le nom du paquet a-t-il été changé ».

Paramètres

ParamètreValeur par défautDescription
-Dfastjson-check.failOnFoundfalseFait échouer la compilation en cas de détection de CRITICAL / HIGH
-Dfastjson-check.pathnon définiNe scanne pas l'arbre de dépendances, scanne plutôt ce chemin (répertoire / jar / war / fat-jar)
-Dfastjson-check.skipfalseIgnore l'exécution

🔴 Par défaut, le build n'échoue pas, c'est délibéré, et cela diffère de la sémantique du code de sortie du CLI : la ligne de commande, c'est vous qui la tapez, et un code de sortie 1 est exactement ce que vous voulez ; tandis que le plugin est branché sur la chaîne d'intégration, et un outil d'auto-vérification ne devrait pas faire échouer le build alors que vous ne vous y attendez pas. Pour en faire un garde-fou CI, ajoutez explicitement -Dfastjson-check.failOnFound=true.

Télécharger l’outil