Um problema de divulgação de memória e falha de segmentação ocorre quando o software salva novamente imagens como arquivos TIFF usando o codificador libtiff. O problema reside na função `PyImaging LibTiffEncoderNew()` em `src/encode.c`, pois o codificador não verifica corretamente se o valor Python passado para a função variádica `TIFFSetField()` corresponde à definição de campo esperada pelo libtiff.
Um invasor pode fornecer um arquivo TIFF manipulado contendo tags específicas que desencadeiam esse erro. Por exemplo, se uma tag for definida pelo libtiff como um array contado, mas for passada como um escalar, o libtiff pode interpretar o valor escalar como uma contagem de bytes e copiar uma quantidade arbitrária de memória do processo a partir de um ponteiro obsoleto para o arquivo de saída. Alternativamente, se uma tag for definida como um array de tamanho fixo, o valor escalar pode ser usado como um endereço de memória de origem, levando ao travamento do processo (SIGSEGV).
Detalhes técnicos incluem:
- **Função Vulnerável**: `PyImaging LibTiffEncoderNew()`
- **Parâmetros Vulneráveis**: Tags TIFF manipuladas, como `DNGPrivateData` (50740) e `ActiveArea` (50829).
- **Impacto**: Isso pode levar a um bypass completo do ASLR ao vazar ponteiros do ` imaging.so`, libpython, libc e libtiff, ou causar a negação de serviço via travamentos do processo.