OpenEXR possui um estouro de inteiro com sinal (comportamento indefinido) em undo_pxr24_impl pode permitir a contornar a verificação de limites na descompressão PXR24
Plataforma
c
Componente
openexr
Corrigido em
3.2.7
OpenEXR fornece a especificação e a implementação de referência do formato de arquivo EXR, um formato de armazenamento de imagem para a indústria cinematográfica. Da versão 3.2.0 até antes da 3.2.7, 3.3.9 e 3.4.9, um estouro de inteiro com sinal existe em undo_pxr24_impl() em src/lib/OpenEXRCore/internal_pxr24.c na linha 377. A expressão (uint64_t)(w * 3) calcula w * 3 como um inteiro de 32 bits com sinal antes de converter para uint64_t. Quando w é grande, esta multiplicação constitui comportamento indefinido sob o padrão C. Em builds testados (clang/gcc sem sanitizadores), o arredondamento de complemento de dois ocorre com frequência, e para valores específicos de w o resultado arredondado é um inteiro positivo pequeno, que pode permitir que a verificação de limites subsequente seja aprovada incorretamente. Se a verificação for contornada, o loop de decodificação prossegue para escrever dados de pixel através de dout, potencialmente se estendendo muito além do buffer de saída alocado. Esta vulnerabilidade é corrigida nas versões 3.2.7, 3.3.9 e 3.4.9.
Como corrigir
Nenhum patch oficial disponível. Procure alternativas ou monitore atualizações.
Monitore suas dependências automaticamente
Receba alertas quando novas vulnerabilidades afetarem seus projetos.
Começar grátis