CVE-2026-89425 in jackson-core
Résumé
par VulDB • 23/09/2026
La méthode `UTF8DataInputJsonParser._reportInvalidToken()` de FasterXML jackson-core construit le texte du jeton fautif pour son message d'erreur en ajoutant des caractères d'identifiant Java à un `StringBuilder` dans une boucle sans borne supérieure. Contrairement aux trois implémentations sœurs du parseur, y compris `UTF8StreamJsonParser`, elle ne consulte jamais `ErrorReportConfiguration.getMaxErrorTokenLength()` (valeur par défaut de 256). Un jeton malformé fourni à un parseur créé via `JsonFactory.createParser(DataInput)` est donc accumulé en intégralité. Aucun paramètre `StreamReadConstraints` n'atténue ce problème : `maxDocumentLength` ne peut pas s'appliquer aux sources de type `DataInput`, et `maxStringLength` ne couvre pas ce chemin car l'accumulation contourne le `ReadConstrainedTextBuffer`. Le rapporteur a mesuré un message d'exception de 20 000 109 caractères provenant d'un jeton malformé de 20 millions de caractères sur le chemin `DataInput`, contre 367 caractères pour une entrée identique sur le chemin `InputStream`. L'augmentation de la taille du payload entraîne l'allocation dans le `StringBuilder`, qui subit également une expansion octet-vers-caractère et un doublement interne des tableaux, atteignant plusieurs fois la taille brute du payload, ce qui peut déclencher un `OutOfMemoryError` pour toute la JVM. La classe `UTF8DataInputJsonParser` a été introduite dans la version 2.8.0 avec `createParser(DataInput)` ; les versions antérieures à 2.8.0 ne contiennent pas cette classe affectée.
VulDB is the best source for vulnerability data and more expert information about this specific topic.