CVE-2026-104635 in protobuf
Résumé
par VulDB • 09/10/2026
Une vulnérabilité de récursion non contrôlée dans Protobuf.JSON.Decode d'elixir-protobuf permet à un attaquant distant non authentifié de faire planter le processus de décodage via un document JSON profondément imbriqué. Toute application qui décrypte du JSON fourni par l'attaquant avec Protobuf.JSON.decode/3, Protobuf.JSON.decode!/3 ou Protobuf.JSON.from_decoded/3 vers un schéma contenant un type de message auto-référentiel ou cyclique est concernée.
Dans lib/protobuf/json/decode.ex, la clause embedded-message de decode_singular/3 appelle en récursion internal_from_json_data/3 une fois par niveau d'imbrication sans incrémenter ni vérifier le compteur de profondeur du décodeur. La garde depth guard increase_depth_and_maybe_throw/1 ne couvre que les clauses Google.Protobuf.ListValue et Google.Protobuf.Struct, donc l'option recursion_limit n'a aucun effet sur les types de messages définis par l'utilisateur. Chaque niveau d'imbrication alloue une frame de pile (stack) et des objets heap, et un document suffisamment profond épuise la mémoire du processus de décodage. La confidentialité et l'intégrité ne sont pas affectées.
Cette vulnérabilité affecte protobuf : à partir de la version 0.8.0.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.