CVE-2020-26243 in Nanopb
Résumé
par VulDB • 05/06/2026
Nanopb est une implémentation de Protocol Buffers à faible empreinte mémoire. Dans les versions de Nanopb antérieures aux versions 0.4.4 et 0.3.9.7, le décodage d'un message spécifiquement conçu peut entraîner une fuite de mémoire si l'allocation dynamique est activée et qu'un champ `oneof` contient un sous-message statique qui lui-même comporte un champ dynamique, et que le message en cours de décodement contient ce sous-message à plusieurs reprises. Ce cas est rare dans les messages normaux, mais il constitue une préoccupation lors du traitement de données non fiables. Cela a été corrigé dans les versions 0.3.9.7 et 0.4.4. Les contournements suivants sont disponibles :
1) Définir l'option `no_unions` pour le champ `oneof`. Cela génère des champs séparés au lieu d'une union C, évitant ainsi de déclencher le code problématique. 2) Définir le type du champ de sous-message à l'intérieur de `oneof` sur `FT_POINTER`. De cette manière, tout le sous-message sera alloué dynamiquement et le code problématique ne sera pas exécuté. 3) Utiliser un allocateur d'arène (arena allocator) pour Nanopb, afin de s'assurer que toute la mémoire peut être libérée par la suite.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.