Threat Intelligence

CVE-2026-16723 : RCE non authentifiée sur Fastjson 1.x dans les fat-JAR Spring Boot, sans correctif disponible

Admin CyberAfrik 28 July 2026 71 lectures
CVE-2026-16723 : RCE non authentifiée sur Fastjson 1.x dans les fat-JAR Spring Boot, sans correctif disponible

Résumé exécutif

CVE-2026-16723 est une vulnérabilité critique (CVSS 9.0, score attribué par Alibaba) affectant Fastjson, la bibliothèque JSON pour Java d'Alibaba, dans ses versions 1.2.68 à 1.2.83. Divulguée le 21 juillet 2026 par Kirill Firsov de FearsOff Cybersecurity selon un processus de divulgation responsable, la faille permet à un attaquant non authentifié d'exécuter du code arbitraire dans les applications Spring Boot déployées sous forme de fat-JAR exécutable, sans activer AutoType et sans nécessiter de gadget de classpath, les deux conditions habituellement associées aux exploits Fastjson historiques. ThreatBook a confirmé une exploitation active dès le 22 juillet, et Imperva a observé des tentatives contre des organisations des secteurs financier, santé, informatique et retail, majoritairement aux États-Unis. Au 25 juillet 2026, Alibaba n'avait publié aucune version corrigée de la branche 1.x.

Le sujet est prioritaire pour deux raisons distinctes. D'une part, la chaîne d'exploitation contourne les protections historiques contre les attaques Fastjson (désactivation d'AutoType) en s'appuyant sur la résolution de type via une valeur @type détournée vers une recherche de ressource de classe, ce qui invalide une partie du modèle de défense standard déployé depuis des années sur ces applications. D'autre part, l'absence de correctif pour la branche 1.x, alors que Fastjson 1.2.83 était déjà la version de référence recommandée après un contournement AutoType distinct signalé en 2022, laisse les équipes sans option de mise à jour immédiate et impose une mitigation de configuration en attendant une migration vers Fastjson2, qui n'est pas affecté par ce chemin d'exploitation.

Chronologie

DateÉvénement
2022Contournement AutoType distinct sur Fastjson, 1.2.83 recommandé comme version de référence
21 juillet 2026Publication de l'avis de sécurité Alibaba après divulgation responsable de Kirill Firsov (FearsOff)
22 juillet 2026ThreatBook ajoute une signature de détection puis capture une exploitation active en conditions réelles
23 juillet 2026Une évaluation CISA-ADP classe l'exploitation comme « none » dans la fiche NVD
25 juillet 2026Imperva publie son rapport d'activité observée ; The Hacker News confirme l'absence de CVE-2026-16723 du catalogue KEV de la CISA et l'absence de version 1.x corrigée sur GitHub et Maven Central

Fiche vulnérabilité (format fiche CTI)

CVE-2026-16723 | CVSS 9.0 | Fastjson 1.2.68 à 1.2.83 (bibliothèque JSON Java d'Alibaba), déploiements Spring Boot fat-JAR

Description technique : Firsov a tracé le défaut jusqu'au chemin de résolution de type de Fastjson. Une valeur @type contrôlée par l'attaquant peut être transformée en recherche de ressource de classe. Dans un fat-JAR Spring Boot compatible, un chemin de JAR imbriqué forgé permet de récupérer du bytecode contrôlé par l'attaquant. Une annotation @JSONType présente dans cette ressource peut alors être traitée comme un signal de confiance, ce qui permet à la classe de passer les contrôles de type de Fastjson et de se charger. Son analyse technique décrit également une variante ciblant les JDK récents, qui télécharge un JAR distant et le référence via /proc/self/fd.

Conditions d'exploitation : Fastjson en version 1.2.68 à 1.2.83, déploiement en fat-JAR exécutable Spring Boot (les JAR non-fat classiques, les uber-JAR génériques et les déploiements WAR sous Tomcat ou Jetty ne sont pas concernés), un chemin réseau atteignant un parseur affecté avec du JSON contrôlé par l'attaquant, et SafeMode laissé à sa valeur par défaut désactivée. AutoType peut rester désactivé, aucun gadget de classpath n'est nécessaire. Points d'entrée atteignables : JSON.parse, JSON.parseObject(String), JSON.parseObject(String, Class) ; lier l'entrée à une classe fixe ne suffit pas si l'objet contient un champ Object ou Map dans lequel la charge peut être imbriquée. Chaîne vérifiée par les mainteneurs sur Spring Boot 2.x, 3.x et 4.x avec JDK 8, 11, 17 et 21.

PoC disponible : les détails techniques de la chaîne sont publiés (avis Alibaba et analyse FearsOff), mais aucune preuve de concept complète prête à l'emploi n'a été identifiée dans les sources consultées. ThreatBook a reproduit l'exécution de code complète en environnement fat-JAR sur JDK 8 ; ses tests en Tomcat embarqué n'ont produit qu'une récupération de JAR distant ou une SSRF, sans confirmer l'exécution de code dans cette configuration. Imperva et ThreatBook n'ont publié ni volumétrie d'attaques précise, ni requêtes brutes, ni preuve d'exécution de code, ni victimes nommées : leurs rapports établissent une activité d'exploitation observée, pas la preuve d'une compromission réussie contre une cible réelle.

Patch/mitigation : aucune version 1.x corrigée n'est disponible au 25 juillet 2026. Activer SafeMode via -Dfastjson.parser.safeMode=true, ou utiliser la distribution restreinte com.alibaba:fastjson:1.2.83_noneautotype. Alibaba recommande la migration vers Fastjson2, qui n'utilise pas le même chemin de sondage de ressource ni le même modèle de confiance basé sur les annotations.

Diagramme de la chaîne d'attaque

Chronologie de la divulgation et de l'exploitation de CVE-2026-16723, de l'avis Alibaba à la confirmation d'exploitation active
Reconstruction à partir de l'avis de sécurité Alibaba du 21 juillet 2026, de l'analyse FearsOff, des rapports ThreatBook et Imperva, et de la couverture The Hacker News du 25 juillet 2026.

Analyse technique

Étape 1 : requête JSON forgée vers un point d'entrée Fastjson atteignable

L'attaquant envoie une requête réseau contenant du JSON contrôlé vers une application Spring Boot fat-JAR qui transmet cette entrée à JSON.parse, JSON.parseObject(String) ou JSON.parseObject(String, Class). Le champ @type de la charge cible une classe dont la résolution va détourner le comportement normal du parseur.

Étape 2 : détournement de la résolution de type vers une recherche de ressource de classe

Contrairement aux exploits Fastjson historiques qui reposent sur AutoType activé pour instancier des classes gadget arbitraires, cette chaîne exploite le mécanisme de résolution de type lui-même : la valeur @type est convertie en recherche de ressource de classe plutôt qu'en instanciation directe, contournant ainsi la protection SafeMode/AutoType lorsque celle-ci ne couvre pas ce chemin spécifique.

Étape 3 : récupération de bytecode via un chemin de JAR imbriqué forgé

Dans le contexte spécifique d'un fat-JAR Spring Boot, la structure d'archive imbriquée (JAR dans JAR, propre au chargeur de classe exécutable de Spring Boot) permet de construire un chemin de ressource qui pointe vers du bytecode contrôlé par l'attaquant. Sur les JDK récents, une variante télécharge un JAR distant et le référence via le pseudo-fichier /proc/self/fd, contournant certaines restrictions de chargement local.

Étape 4 : abus de l'annotation @JSONType comme signal de confiance

Une fois la ressource atteinte, une annotation @JSONType présente dans le bytecode récupéré est traitée par Fastjson comme un signal de confiance suffisant pour laisser la classe franchir les contrôles de type internes. C'est ce détournement du mécanisme d'annotation, plutôt qu'une simple absence de contrôle, qui permet à la classe de se charger malgré SafeMode désactivé par défaut.

Étape 5 : exécution de code avec les privilèges du processus Java

La classe chargée s'exécute avec les privilèges du processus Java hébergeant l'application Spring Boot, donnant à l'attaquant un point d'exécution de code arbitraire sans avoir eu besoin d'identifiants ni d'interaction utilisateur.

Indicateurs de compromission

Ni Imperva ni ThreatBook n'ont publié d'indicateurs réseau exploitables (IP, domaines, hashs) associés à cette campagne au moment de la rédaction. La détection repose sur l'inspection du contenu des requêtes et sur la télémétrie applicative.

TypeValeur
Champ JSON suspectValeur @type détournée vers une recherche de ressource de classe
Artefact réseauChemin de JAR imbriqué forgé dans une requête vers un endpoint Fastjson atteignable
Artefact système (JDK récents)Référence à un JAR distant via /proc/self/fd
Origine des requêtes observées (Imperva)Majoritairement États-Unis, volumes plus faibles à Singapour et au Canada
Outils générant le trafic (Imperva)Imitateurs de navigateur pour la majorité des requêtes, outils Ruby et Go pour environ 30 % combinés
IOC réseau nommés (IP, domaines, hashs)Non publiés dans les sources consultées

MITRE ATT&CK

Aucune cartographie officielle n'a été publiée par Alibaba, FearsOff, ThreatBook ou Imperva pour cette vulnérabilité. Le tableau suivant est une lecture technique construite à partir des éléments confirmés, pas une attribution vendeur.

TactiqueTechniqueIDJustification
Initial AccessExploit Public-Facing ApplicationT1190Requête JSON non authentifiée envoyée à un endpoint Spring Boot atteignable
ExecutionExploitation for Client Execution (adapté serveur Java)T1203Chargement et exécution de bytecode via le détournement de résolution de type Fastjson
Defense EvasionDeobfuscate/Decode Files or InformationT1140Abus de l'annotation @JSONType comme signal de confiance pour contourner les contrôles de type
Command and ControlIngress Tool TransferT1105Récupération de bytecode ou de JAR distant via chemin de ressource forgé ou /proc/self/fd

Remédiation : checklist opérationnelle

  1. Inventorier toutes les dépendances directes et transitives Fastjson 1.x dans les applications Java, avec une attention particulière aux fat-JAR Spring Boot exécutables.
  2. Activer SafeMode immédiatement sur tout composant Fastjson 1.x exposé, via -Dfastjson.parser.safeMode=true, ou basculer vers la distribution restreinte 1.2.83_noneautotype.
  3. Prioriser la migration vers Fastjson2, qui n'est pas affecté par ce chemin de résolution de type basé sur les annotations.
  4. Auditer les points d'entrée atteignables (JSON.parse, JSON.parseObject) pour identifier les objets contenant des champs Object ou Map susceptibles d'accueillir une charge imbriquée, même lorsque le type de liaison semble fixe.
  5. Inspecter les systèmes potentiellement affectés pour des valeurs @type suspectes, des chemins de JAR imbriqués anormaux, des connexions sortantes inattendues, des processus enfants inhabituels, des modifications de fichiers ou des web shells.
  6. Surveiller spécifiquement les références à /proc/self/fd dans les journaux applicatifs sur les déploiements utilisant des JDK récents.
  7. Ne pas se fier à la seule absence de CVE-2026-16723 dans le catalogue KEV de la CISA pour prioriser le traitement : plusieurs éditeurs indépendants confirment une exploitation active malgré l'écart avec l'évaluation CISA-ADP publiée le 23 juillet.

Sources

Tags : CVE-2026-16723FastjsonAlibabaSpring BootRCEzero-dayThreatBookImperva
Partager cet article