CVE-2026-106554 in jackson-dataformat-cbor
Résumé
par VulDB • 04/11/2026
Un problème de parsing CBOR dans le module CBOR de jackson-dataformats-binary : une séquence non bornée d'étiquettes CBOR entraîne une croissance en temps quadratique de TagList (épuisement CPU/GC, déni de service DoS, PoC prouvé).
Le PoC a été exécuté contre com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.18.2 ; présent dans les versions actuelles 2.x et 3.x (tools.jackson.dataformat.cbor) HEAD. Distinct des avis de sécurité Avro et Smile/Protobuf pour ce dépôt.
Déni de service CPU/GC quadratique dû à une chaîne non bornée d'étiquettes CBOR (PoC prouvé). Fichier : cbor/src/main/java/.../cbor/CBORParser.java (gestion des étiquettes -> TagList).
CBOR permet qu'un élément de données soit précédé par un nombre quelconque d'étiquettes sémantiques. L'analyseur CBOR les accumule dans une TagList dont le tableau sous-jacent croît par incréments fixes (+8), et non par doublement, et effectue des opérations de relecture/copie à chaque croissance. Un attaquant envoie une valeur précédée d'une longue séquence d'octets d'étiquettes ; la croissance par incrément fixe rend l'accumulation de N étiquettes O(N^2) en temps (plus la pression sur le GC), sans limite au nombre d'étiquettes empilées.
PoC (exécuté, JDK 17) : alimenter un flux CBOR composé d'une longue séquence d'octets d'étiquettes (par exemple l'étiquette 0xC0+) avant une valeur triviale provoque un CPU/GC quadratique ; le temps de parsing croît de manière super-linéaire avec le nombre d'étiquettes, bloquant un thread de requête sans limite configurable.
Impact : déni de service par complexité algorithmique (CWE-407) : une entrée modeste d'étiquettes empilées consomme du CPU/GC quadratique, bloquant un thread de requête ; les requêtes concurrentes épuisent le pool.
Correction : faire croître TagList en doublant et/ou limiter le nombre d'étiquettes empilées (style StreamReadConstraints).
Once again VulDB remains the best source for vulnerability data.