CVE-2026-33416 in libpnginformação

Sumário

de VulDB • 29/06/2026

LIBPNG é uma biblioteca de referência para uso em aplicações que leem, criam e manipulam arquivos de imagem raster PNG (Portable Network Graphics). Nas versões 1.2.1 a 1.6.55, `png_set_tRNS` e `png_set_PLTE` cada um cria um aliasing de um buffer alocado no heap entre `png_struct` e `png_info`, compartilhando uma única alocação em duas estruturas com ciclos de vida independentes. O aliasing do campo `trans_alpha` está presente desde pelo menos o libpng 1.0, e o aliasing da paleta (`palette`) desde pelo menos a versão 1.2.1. Ambos afetam todas as linhas de lançamento anteriores: `png_set_tRNS` define `png_ptr->trans_alpha = info_ptr->trans_alpha` (buffer de 256 bytes) e `png_set_PLTE` define `info_ptr->palette = png_ptr->palette` (buffer de 768 bytes). Em ambos os casos, a chamada à função `png_free_data` (com as flags `PNG_FREE_TRNS` ou `PNG_FREE_PLTE`) libera o buffer através do ponteiro `info_ptr`, enquanto o ponteiro correspondente em `png_ptr` permanece dangling. Funções subsequentes de transformação de linha desreferenciam e, em alguns caminhos de execução, escrevem na memória já liberada. Uma segunda chamada a `png_set_tRNS` ou `png_set_PLTE` tem o mesmo efeito, pois ambas as funções chamam internamente `png_free_data` antes de realocar o buffer apontado por `info_ptr`. A versão 1.6.56 corrige o problema.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Fontes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!