
Notas de pesquisa documentando o CVE-2024-30350, uma leitura fora dos limites no tratamento de anotações do Foxit PDF Reader, abrangendo triagem, divulgação e orientações defensivas.
CVE-2024-30350 é uma vulnerabilidade de divulgação de informações por leitura fora dos limites no Foxit PDF Reader. O problema foi publicado pela Trend Micro Zero Day Initiative como ZDI-24-333 e rastreado antes da divulgação como ZDI-CAN-22708.
O aviso público descreve a área vulnerável como o tratamento de objetos Annotation pelo Foxit PDF Reader. Um PDF criado maliciosamente pode fazer com que a aplicação leia além do fim de um buffer alocado. A exploração requer interação do usuário, como abrir um arquivo PDF malicioso ou visitar uma página que o entregue. O impacto imediato é a divulgação de informações sensíveis, e o aviso observa que a condição pode ser útil quando encadeada com outras vulnerabilidades.
Este repositório documenta a vulnerabilidade, o fluxo de trabalho de pesquisa, o processo de triagem e as notas de divulgação. Ele intencionalmente não inclui uma prova de conceito weaponizada.
| Campo | Valor |
|---|
| CVE | CVE-2024-30350 |
| Aviso ZDI | ZDI-24-333 |
| Caso ZDI | ZDI-CAN-22708 |
| Produto | Foxit PDF Reader |
| Fornecedor | Foxit |
| Componente | Tratamento de objetos Annotation |
| Fraqueza | Leitura fora dos limites |
| CWE | CWE-125 |
| Impacto | Divulgação de informações |
| CVSS | 3.3 |
| Vetor | CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N |
| Data do relatório ao fornecedor | 2023-12-20 |
| Data do aviso público | 2024-03-28 |
| Data de atualização do aviso | 2024-07-01 |
| Corrigido por | Atualizações de segurança do Foxit PDF Reader 2024.1 e Foxit PDF Editor 2024.1 |
De acordo com o boletim de segurança da Foxit de 5 de março de 2024, as versões afetadas do Windows incluíam o Foxit PDF Reader 2023.3.0.23028 e anteriores, e várias linhas de lançamento do Foxit PDF Editor até as versões listadas no boletim.
As anotações de PDF são representadas como dicionários anexados às páginas através do array /Annots da página. Um leitor precisa analisar o dicionário de anotação, resolver valores diretos e indiretos, normalizar dados de geometria e aparência, e conectar o resultado aos caminhos de renderização, seleção, edição, JavaScript e acessibilidade.
A classe de bug para CVE-2024-30350 é uma falha de validação de limites nesse pipeline de análise de anotações. Um objeto de anotação malformado poderia fazer com que o Foxit PDF Reader confiasse em um comprimento derivado ou forma de objeto que não correspondia mais ao buffer de suporte. Sob o caminho vulnerável, o programa poderia ler além do limite do objeto alocado. O modo de falha observado foi uma violação de acesso durante o tratamento de anotações; com a memória organizada de forma diferente, o mesmo primitivo poderia expor memória adjacente do processo.
O problema não era uma vulnerabilidade de rede de um clique. O atacante precisava convencer o usuário alvo a abrir um documento criado maliciosamente ou acessar uma página de entrega que fizesse o documento ser aberto. Isso se reflete no requisito de interação do usuário no CVSS.
A investigação original começou como uma auditoria focada em famílias complexas de objetos PDF, em vez de uma execução geral de fuzzing de formato de arquivo. O tratamento de anotações foi selecionado porque as anotações ficam em uma interseção densa de lógica do analisador, comportamento da UI, exposição a JavaScript e atualizações incrementais de documentos.
O corpus inicial misturava documentos comuns com páginas sintéticas contendo dicionários de anotação de alta variabilidade. O gerador variava comprimentos de arrays, indireção de objetos, valores nulos, tipos primitivos inesperados, referências recursivas e combinações de fluxos de aparência. As amostras mais úteis não eram totalmente aleatórias. Elas eram suficientemente conscientes da gramática para alcançar o código de normalização de anotações, mas ainda malformadas o suficiente para testar suposições no analisador nativo.
O primeiro sinal foi um crash que só se reproduzia quando uma página continha uma estrutura de anotação malformada específica e a anotação era forçada através do caminho de tratamento interativo. Abrir o documento era suficiente para analisar a página, mas a reprodução confiável melhorava quando a visualização era atualizada, a página era ampliada, ou a árvore de anotações era tocada pelo código de seleção ou renderização.
A depuração estreitou o problema para uma leitura além do fim de uma alocação de heap durante o processamento do objeto de anotação. O crash não se assemelhava a uma desreferência nula. A instrução que falhava consumia memória adjacente a um buffer relacionado à anotação, e as relações de tamanho na amostra minimizada sugeriam uma incompatibilidade entre uma contagem lógica analisada e o armazenamento real disponível para aquele objeto.
A amostra foi minimizada removendo repetidamente objetos PDF não relacionados, recursos de página, fontes, metadados e fluxos até que apenas a árvore de páginas, a página alvo e a estrutura de anotação permanecessem. O arquivo reduzido preservou a mesma assinatura de crash, o que o tornou adequado para divulgação coordenada.
Após a triagem, a descoberta foi submetida através da Zero Day Initiative. A data do relatório ao fornecedor no aviso público é 2023-12-20. O aviso coordenado foi publicado em 2024-03-28, e a Foxit abordou o problema na linha de atualização 2024.1.
O impacto direto é a divulgação de memória do processo do Foxit PDF Reader. Isoladamente, isso geralmente significa impacto limitado de confidencialidade. Em uma cadeia de exploração mais completa, no entanto, uma leitura fora dos limites pode ser valiosa para vazar conteúdos de heap, ponteiros de objetos, layout de alocação ou outro estado do processo necessário para tornar confiável uma vulnerabilidade separada de corrupção de memória.
Isso explica a pontuação CVSS baixa isolada, enquanto ainda torna o problema significativo para o endurecimento de cadeias de exploração.
Os usuários devem atualizar o Foxit PDF Reader e o Foxit PDF Editor para versões corrigidas. Organizações que lidam com PDFs não confiáveis também devem manter o Protected View, Safe Reading Mode, controles de reputação de arquivos, filtragem de anexos e mitigações de exploração de endpoint habilitados.
Para desenvolvedores de analisadores, a principal lição é que dicionários de anotação devem ser tratados como entrada estruturada não confiável, mesmo quando o PDF circundante é sintaticamente válido. Comprimentos derivados, arrays normalizados, objetos indiretos resolvidos e representações de objetos em cache devem ser validados em cada limite entre o analisador, o renderizador, o script e o código da UI.
| Caminho | Propósito |
|---|---|
README.md | Visão geral principal da vulnerabilidade |
docs/discovery-process.md | Narrativa de pesquisa de ponta a ponta |
docs/advisory-notes.md | Fatos e referências do aviso público |
docs/triage-checklist.md | Checklist geral usado para triagem de crash de leitor de PDF |