Temos o prazer de apresentar uma série de blogues de análise técnica centrados em várias vulnerabilidades e exposições comuns (CVE), identificadas e corrigidas com as nossas tecnologias avançadas de deteção de ameaças.Toda a investigação é realizada pelos estudantes de pós-graduação que participam no programa OPSWAT Cybersecurity Fellowship, lançado em setembro de 2023.
Neste blogue, explicaremos a vulnerabilidade CVE- 2020-14425 do Foxit PDF Reader e como as organizações podem proteger-se contra a exploração.

Leitor de PDF da Foxit
O Foxit PDF Reader é uma ferramenta de PDF desenvolvida pela Foxit Software, que fornece uma gama de funcionalidades para criar, visualizar, editar e assinar digitalmente documentos PDF. A versão gratuita do Foxit Reader ganhou popularidade e é utilizada por mais de 700 milhões de utilizadores.
Para melhorar as suas capacidades e flexibilidade, o Foxit PDF Reader suporta extensões JavaScript, oferecendo aos utilizadores opções de personalização; no entanto, isto também introduz um potencial risco de segurança, tornando o software um alvo para os atacantes.

14425
Uma vulnerabilidade no Foxit PDF Reader antes da versão 10.0 permite que os atacantes executem código remoto no dispositivo da vítima quando um ficheiro PDF especialmente criado é aberto. Esta vulnerabilidade ocorreu devido à falha de segurança da função JavaScript app.opencPDFWebPage. Se o Foxit Reader estiver configurado para utilizar o browser predefinido para abrir URLs incorporados no ficheiro PDF, o código malicioso incorporado no ficheiro executável pode ser executado sem desencadear uma caixa de diálogo de aviso de segurança.
Um ficheiro PDF criado para explorar este CVE pode ser distribuído através de uma campanha de phishing por correio eletrónico ou de ligações maliciosas incorporadas. Se o utilizador abrir o ficheiro PDF comprometido utilizando a versão vulnerável do Foxit Reader, o atacante pode obter controlo sobre o dispositivo da vítima através da execução remota de código.

Análise CVE-2020-14425
Os ficheiros PDF são organizados utilizando uma estrutura em árvore, constituída por uma secção de cabeçalho, uma secção de corpo, uma tabela de referências cruzadas e uma secção de trailer.
- O cabeçalho começa com %PDF-1.x, indicando a versão do formato PDF. Atualmente, a versão do formato varia entre 1.0 e 1.7. A secção do cabeçalho também inclui metadados do documento, como o autor, a data de criação e outras informações relevantes.
- O corpo compreende a totalidade do conteúdo do ficheiro PDF, estruturado em objectos como páginas, fluxos de texto, tipos de letra, formulários, código JavaScript e outros elementos.
- A tabela de referências cruzadas (tabela Xref) contém a referência e o desvio de bytes para todos os objectos no ficheiro PDF. Permite um acesso rápido aos objectos sem ter de ler todo o ficheiro.
- O trailer armazena informações adicionais essenciais para localizar a tabela xref, como o número total de entradas na tabela xref e o ponteiro para o seu início.

Uma vez que o corpo contém os objectos sensíveis dos ficheiros PDF, os ataques centram-se frequentemente na injeção de código malicioso neste componente.
Os ficheiros PDF tornaram-se um alvo para os atacantes devido à sua ubiquidade. Uma vez que os ficheiros PDF podem conter código JavaScript, podem ser utilizados para executar vários ataques quando abertos por um browser, tais como Negação de Serviço (DoS), Redireccionamento Aberto ou Cross-Site Scripting (XSS).
Além disso, os atacantes podem utilizar algumas técnicas exploráveis, como a utilização após a libertação (UAF) e o excesso de memória (BoF). Podem também explorar o tratamento de falhas de software para executar um ataque de Execução Remota de Código (RCE) no sistema da vítima. Como resultado, um ficheiro PDF pode conter ransomware, encriptando dados na máquina e exigindo um resgate significativo para a recuperação, ou os atacantes podem ganhar controlo total sobre a máquina da vítima.
No Foxit Reader, quando um URL de página da Web é incorporado, os usuários têm duas opções de visualização: exibir a página da Web no Foxit Reader ou usar o navegador padrão no dispositivo do usuário. Na configuração padrão, o Foxit Reader acessa internamente a página da Web incorporada. No conteúdo do PDF, para solicitar a abertura de uma página da Web, o Foxit Reader emprega a função OpencPDFWebPage, um JavaScript API projetado para iniciar a abertura de um URL de página da Web incorporado no PDF.

No entanto, existe uma vulnerabilidade de validação de entrada inadequada neste API, que permite aos atacantes introduzir um caminho de ficheiro local na função opencPDFWebPage. Consequentemente, a função pode abrir o ficheiro malicioso com o caminho anexado e executar este ficheiro executável. Esta falha permite que os atacantes iniciem a carga útil armazenada no computador da vítima e obtenham a execução remota de código.
A opção de abrir a página Web no Foxit Reader, um requisito para o IE 10 ou superior, desencadeia um diálogo de aviso durante uma tentativa de exploração, ao passo que se a opção estiver definida para utilizar o navegador predefinido, contorna o aviso de segurança.

Exploração de vulnerabilidades

Com a vulnerabilidade identificada, um potencial vetor de ataque envolve um ataque de phishing que utiliza o ficheiro PDF como carregador para executar uma carga útil oculta anexada. Nesse cenário, o agente da ameaça envia um arquivo ZIP contendo um arquivo PDF e um arquivo executável oculto para a vítima, com a intenção de enganá-la para que abra o documento. O CVE no Foxit Reader permite então que o código JavaScript incorporado execute o ficheiro executável oculto, estabelecendo uma ligação reverse shell à máquina do atacante.
Para injetar código JavaScript no ficheiro PDF, o atacante pode modificar diretamente o ficheiro de conteúdo PDF ou utilizar ferramentas como o Foxit Phantom PDF. O código malicioso define o caminho do ficheiro malicioso e executa o código nocivo utilizando a função opencPDFWebPage.


Depois de preparar os ficheiros PDF maliciosos, o atacante esconde o ficheiro executável e comprime a pasta num ficheiro ZIP. Para evitar as protecções de segurança dos programas antivírus, o atacante pode encriptar o ficheiro ZIP com uma palavra-passe antes de o enviar para a vítima.

Se a vítima extrair e abrir o ficheiro PDF malicioso com a versão vulnerável do Foxit Reader, o código malicioso incorporado no ficheiro executável será executado, permitindo ao atacante comprometer o dispositivo da vítima através de uma shell inversa.

Remediação
A tecnologia Multiscanning em Metadefender Core detecta ficheiros maliciosos comprimidos com palavras-passe, permitindo aos administradores identificar com precisão estas ameaças. Com a integração de mais de 30 motores antivírus combinados, a taxa de deteção de malware atinge mais de 99,99%. Além disso, com a tecnologia incorporada Deep CDR (Content Disarm and Reconstruction), Metadefender Core pode remover eficazmente código JavaScript potencialmente malicioso e regenerar ficheiros higienizados e seguros para utilização.




Além disso, MetaDefender Endpoint pode reconhecer versões de aplicações vulneráveis e atualizar automaticamente para os patches mais recentes, melhorando a segurança do endpoint contra potenciais ameaças no futuro.
