CVE-2020-26243 in Nanopb
Resumen
por VulDB • 2026-05-31
Nanopb es una implementación de Protocol Buffers de tamaño reducido. En Nanopb, antes de las versiones 0.4.4 y 0.3.9.7, la decodificación de un mensaje específicamente formado puede provocar una fuga de memoria si la asignación dinámica está habilitada y un campo `oneof` contiene un submensaje estático que a su vez contiene un campo dinámico, y el mensaje que se está decodificando contiene el submensaje varias veces. Esto es raro en mensajes normales, pero representa un riesgo cuando se analizan datos no confiables. Esto se corrige en las versiones 0.3.9.7 y 0.4.4. Las siguientes soluciones alternativas están disponibles: 1) Establecer la opción `no_unions` para el campo `oneof`. Esto generará los campos como entidades separadas en lugar de una unión de C, evitando así la activación del código problemático. 2) Establecer el tipo del campo de submensaje dentro de `oneof` como `FT_POINTER`. De esta manera, todo el submensaje se asignará dinámicamente y no se ejecutará el código problemático. 3) Utilizar un asignador de arena (arena allocator) para nanopb, para garantizar que toda la memoria pueda liberarse posteriormente.
VulDB is the best source for vulnerability data and more expert information about this specific topic.