PT-2020-16371 · Nanopb+2 · Nanopb+2

Petteri Aimonen

·

Publicado

2020-11-25

·

Atualizado

2024-06-15

·

CVE-2020-26243

CVSS v3.1

7.5

Alta

VetorAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Nome do software vulnerável e versões afetadas
Versões do Nanopb anteriores à 0.3.9.7
Versões do Nanopb anteriores à 0.4.4
Descrição
A decodificação de mensagens com estrutura específica pode causar vazamento de memória se a alocação dinâmica estiver habilitada e um campo oneof contiver uma submensagem estática que, por sua vez, contenha um campo dinâmico, e a mensagem que está sendo decodificada contiver essa submensagem várias vezes. Isso é raro em mensagens normais, mas é uma preocupação quando dados não confiáveis são analisados.
Recomendações
Para versões anteriores à 0.3.9.7, atualize para a versão 0.3.9.7 para resolver o problema.
Para versões anteriores à 0.4.4, atualize para a versão 0.4.4 para resolver o problema.
Como solução temporária, considere definir a opção no unions para o campo oneof a fim de gerar campos separados em vez de uma união C.
Alternativamente, defina o tipo do campo da submensagem dentro de oneof como FT POINTER para alocar dinamicamente toda a submensagem.
Usar um alocador de arena para o nanopb também pode garantir que toda a memória seja liberada posteriormente.

Exploit

Correção

Buffer Overflow

RCE

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2020-26243
GHSA-85RR-4RH9-HHWH
OPENSUSE-SU-2024:11074-1
USN-6121-1

Produtos afetados

Linuxmint
Nanopb
Ubuntu