Vulnerabilidade no OpenOffice que permite execução de código ao abrir um arquivo

Uma vulnerabilidade (CVE-2021-33035) foi identificada no pacote de escritório Apache OpenOffice que permite a execução de código ao abrir um arquivo especialmente projetado no formato DBF. O pesquisador que descobriu o problema alertou sobre a criação de um exploit funcional para a plataforma Windows. A correção da vulnerabilidade está atualmente disponível apenas na forma de um patch no repositório do projeto, que foi incluído nas compilações de teste do OpenOffice 4.1.11. Ainda não há atualizações para o branch estável.

O problema é causado pelo OpenOffice depender dos valores fieldLength e fieldType no cabeçalho dos arquivos DBF para alocar memória, sem verificar se o tipo de dados real nos campos corresponde. Para realizar um ataque, você pode especificar um tipo INTEGER no valor fieldType, mas colocar dados maiores e especificar um valor fieldLength que não corresponda ao tamanho dos dados com o tipo INTEGER, o que levará à cauda dos dados do campo que está sendo gravado além do buffer alocado. Como resultado de um buffer overflow controlado, o pesquisador conseguiu redefinir o ponteiro de retorno da função e, utilizando técnicas de programação orientada a retorno (ROP - Return-Oriented Programming), conseguir a execução de seu código.

Ao utilizar a técnica ROP, o invasor não tenta colocar seu código na memória, mas opera em pedaços de instruções de máquina já disponíveis nas bibliotecas carregadas, terminando com uma instrução de retorno de controle (via de regra, são os fins das funções da biblioteca) . O trabalho do exploit se resume a construir uma cadeia de chamadas para blocos semelhantes (“gadgets”) para obter a funcionalidade desejada. Os gadgets usados ​​na exploração do OpenOffice eram códigos da biblioteca libxml2 usada no OpenOffice, que, diferentemente do próprio OpenOffice, foi compilada sem os mecanismos de proteção DEP (Data Execution Prevention) e ASLR (Address Space Layout Randomization).

Os desenvolvedores do OpenOffice foram notificados sobre o problema em 4 de maio, após o que a divulgação pública da vulnerabilidade foi agendada para 30 de agosto. Como a atualização para o branch estável não foi concluída na data prevista, o pesquisador adiou a divulgação dos detalhes para 18 de setembro, mas os desenvolvedores do OpenOffice não conseguiram criar a versão 4.1.11 até esta data. Vale ressaltar que durante a mesma pesquisa foi identificada vulnerabilidade semelhante no código de suporte ao formato DBF no Microsoft Office Access (CVE-2021–38646), cujos detalhes serão divulgados posteriormente. Nenhum problema encontrado no LibreOffice.

Fonte: opennet.ru

Adicionar um comentário