CVE-2022-25845 est une faille de sécurité de haute gravité (évaluation 8.1 de 10 à l'échelle CVSS) dans la célèbre bibliothèque Fastjson qui pourrait être utilisée dans des attaques d'exécution de code à distance.
Heureusement, la vulnérabilité est déjà corrigée. La vulnérabilité provient de la désérialisation de données non fiables dans la fonction AutoType, et a été corrigé par les mainteneurs du projet dans la version 1.2.83.
CVE-2022-25845 Détails techniques
Selon le chercheur en sécurité Uriya Yavnieli de JFrog, la vulnérabilité "est encore entourée de mystère". Ce que l'on sait, c'est que cela affecte toutes les applications Java reposant sur les versions de Fastjson 1.2.80 ou plus tôt, et les versions qui transmettent des données contrôlées par l'utilisateur aux API JSON.parse ou JSON.parseObject sans spécifier une classe spécifique à désérialiser.
"Il n'y a pratiquement aucun détail technique public à ce sujet - qui est exactement vulnérable et dans quelles conditions?,» A ajouté le chercheur.
Conforme à la description officielle, "Fastjson est une bibliothèque Java qui peut être utilisée pour convertir des objets Java en leur représentation JSON. Il peut également être utilisé pour convertir une chaîne JSON en un objet Java équivalent. La bibliothèque peut fonctionner avec des objets Java arbitraires, y compris des objets préexistants pour lesquels les développeurs n'ont pas de code source.
Autotype, la fonction vulnérable, est activé par défaut. Il spécifie un type personnalisé lors de l'analyse d'une entrée JSON qui peut être désérialisée dans un objet de la classe spécifique.
Un problème de sécurité apparaît si le JSON désérialisé est contrôlé par l'utilisateur, l'analyser avec AutoType activé. Cela peut conduire à une vulnérabilité de désérialisation, puisque les pirates peuvent « instancier n'importe quelle classe disponible sur le Classpath, et alimente son constructeur avec des arguments arbitraires,” explique le chercheur dans son rédaction technique.
Les propriétaires du projet ont contourné la vulnérabilité en introduisant un mode sans échec qui désactive AutoType. Ils ont également commencé à maintenir une liste de blocage de classes pour se protéger contre de tels problèmes futurs. Cependant, CVE-2022-25845 contourne les restrictions et peut créer un exécution de code distant attaque.
Les utilisateurs de Fastjson doivent mettre à jour la version 1.2.83 ou activez safeMode pour désactiver la fonctionnalité et éviter les attaques de désérialisation.