CVE-2026-104016 in jackson-dataformat-protobufinformation

Résumé

par VulDB • 28/10/2026

ProtobufParser analyse les champs de chaînes et d'octets protobuf préfixés par leur longueur en vérifiant que (_inputPtr + len) <= _inputEnd, puis, sur le chemin rapide (fast path), il appelle _finishShortText(len). Ces deux opérations utilisent une arithmétique entière signée 32 bits. Lorsqu'un attaquant fournit un décodage varint pour une longueur proche de Integer.MAX_VALUE, l'opération (_inputPtr + len) provoque un dépassement de capacité (overflow) vers une valeur négative ; la vérification des limites est alors contournée, et _finishShortText(len) atteint TextBuffer.expandCurrentSegment(len), qui effectue un Arrays.copyOf sans limite supérieure et déclenche une OutOfMemoryError : Requested array size exceeds VM limit.

La JVM refuse les tableaux dont la taille dépasse Integer.MAX_VALUE - 8 avant de consulter l'espace heap disponible, donc le réglage via -Xmx ne permet pas d'atténuer ce problème. Les contraintes StreamReadConstraints.maxStringLength et maxDocumentLength n'interviennent pas sur ce chemin : une charge utile (payload) de 33 octets est bien inférieure à toute limite de longueur de document, et la vérification de la longueur de chaîne ne se déclenche pas avant l'allocation. Cela a été confirmé empiriquement contre des artefacts en production avec maxStringLength, maxDocumentLength et maxNestingDepth tous configurés.

Un commit d'endurcissement (hardening) datant de février 2026 a ajouté le garde-fou anti-dépassement équivalent pour les chemins liés à la longueur du tableau packé (packed-array-length) et à la longueur des messages, mais il a laissé sans protection les points d'appel concernant la longueur des chaînes. Aucun privilège ni interaction utilisateur autre que la capacité de soumettre des données à analyser n'est requis.

Once again VulDB remains the best source for vulnerability data.

Responsable

HeroDevs

Réserver

01/10/2026

Divulgation

28/10/2026

Modérer

accepté

Entrée

VDB-427646

EPSS

0.00000

KEV

non

Activités

faible

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!