Voltar aos artigos
HIGH7.8/10CVE-2009-0557NVD

CVE-2009-0557: A Corrupção do Registro de Objeto do Excel Que Transformou Planilhas em Vetores de Ataque

O ponto é esse sobre vulnerabilidades do Excel dessa era: não eram bugs aleatórios. A especificação BIFF (Binary Interchange File Format) que fundamenta os arquivos `.

@0xrafasecFebruary 18, 2026cve-analysis

CVSS: 7.8/10 (HIGH)

Affected: cpe:2.3:a:microsoft:office:2000:sp3:*:*:*:*:*:*; cpe:2.3:a:microsoft:office:2003:sp3:*:*:*:*:*:*; cpe:2.3:a:microsoft:office:2004:*:*:*:*:macos:*:*; cpe:2.3:a:microsoft:office:2007:sp1:*:*:*:*:*:*; cpe:2.3:a:microsoft:office:2007:sp2:*:*:*:*:*:*; cpe:2.3:a:microsoft:office:2008:*:*:*:*:macos:*:*; cpe:2.3:a:microsoft:office:xp:sp3:*:*:*:*:*:*; cpe:2.3:a:microsoft:office_compatibility_pack:2007:sp1:*:*:*:*:*:*; cpe:2.3:a:microsoft:office_compatibility_pack:2007:sp2:*:*:*:*:*:*; cpe:2.3:a:microsoft:office_excel_viewer:-:*:*:*:*:*:*:*; cpe:2.3:a:microsoft:office_excel_viewer:2003:sp3:*:*:*:*:*:*; cpe:2.3:a:microsoft:office_sharepoint_server:2007:sp1:*:*:*:*:*:*; cpe:2.3:a:microsoft:office_sharepoint_server:2007:sp2:*:*:*:*:*:*; cpe:2.3:a:microsoft:open_xml_file_format_converter:-:*:*:*:*:macos:*:*

Available in English

Share:

CVE-2009-0557: A Corrupção do Registro de Objeto do Excel Que Transformou Planilhas em Vetores de Ataque

Em 2009, abrir uma planilha de um colega podia dar a um atacante controle total da sua máquina—e a maioria das pessoas não tinha ideia de que o formato de arquivo em que confiava todos os dias era uma arma carregada.


🎯 Impacto: Execução remota de código via registro de objeto do Excel malformado — atacante ganha controle total em nível de usuário
🔓 Vetor de Ataque: Rede (entregue via email, web ou compartilhamento de arquivo)
💥 Exploitabilidade: Moderada — requer que o usuário abra um arquivo crafted, sem autenticação necessária
🛡️ Correção Disponível: Sim — MS09-021 (lançado em maio de 2009)
⏱️ Aplicar Patch Agora: Sistemas legados ainda rodando Office 2000/XP/2003? Absolutamente sim.

O Que Está Realmente Acontecendo

O ponto é esse sobre vulnerabilidades do Excel dessa era: não eram bugs aleatórios. A especificação BIFF (Binary Interchange File Format) que fundamenta os arquivos .xls foi projetada para máxima compatibilidade retroativa entre duas décadas de versões do Office. Essa filosofia de design—"parsear tudo, confiar no formato"—criou uma superfície de ataque massiva que adversários exploraram implacavelmente ao longo dos anos 2000.

CVE-2009-0557 segue essa tradição. A vulnerabilidade é um bug de corrupção de memória acionado por um objeto de registro malformado dentro de um arquivo Excel crafted. Quando o mecanismo de parsing do Excel processa registros de uma workbook, ele lê metadados do arquivo para determinar tamanhos de objeto e aloca memória de acordo. A causa raiz aqui é validação insuficiente dos dados do registro de objeto antes de serem usados para controlar operações de memória.

O padrão vulnerável se parece conceitualmente com isto:

c
// Representação conceitual — NÃO é código real do Excel
void ParseObjectRecord(Stream* stream) {
    ObjectRecord rec;
    
    // Lê campo de tamanho diretamente do arquivo — controlado pelo atacante
    rec.size = stream->ReadUInt16();
    
    // Aloca buffer baseado no tamanho não validado
    rec.data = (BYTE*)malloc(rec.size);
    
    // Copia conteúdo do arquivo para buffer — sem verificação de limites contra tamanho real do stream
    stream->ReadBytes(rec.data, rec.size);
    
    // Processa o objeto — neste ponto, heap já está corrompido
    ProcessObject(&rec);
}

A falha crítica: o campo de tamanho no cabeçalho do registro é aceito pelo valor de face sem cruzar referência contra dados reais restantes no stream ou um limite superior razoável. Um arquivo especialmente crafted pode fornecer um valor de tamanho que causa alocação e processamento subsequente para corromper memória adjacente do heap.

O que torna isso interessante é a consequência a jusante. Como essa é uma corrupção de heap ao invés de um simples estouro de pilha, a exploração requer heap feng shui—manipular o estado do alocador para que a região de memória corrompida contenha algo útil, como um ponteiro de função ou uma entrada de vtable COM. Isso a coloca em território de "exploitabilidade moderada": mais difícil que um esmagamento trivial de pilha, mas absolutamente realizável por um atacante hábil, como demonstrado pela exploração ativa em campo.

Compare com CVE-2006-3059 (outro RCE do Excel da mesma era)—mesma classe geral, mesmo mecanismo de entrega, mesma classe de corrupção de heap. Microsoft estava jogando whack-a-mole com o parser BIFF por anos.


Caminho de Exploração

A cadeia de ataque é elegante em sua simplicidade porque a parte mais difícil—fazer a vítima abrir um arquivo—é um problema de engenharia social que adversários já tinham resolvido.

Loading diagram…

Pré-requisitos: Nenhum. Sem autenticação, sem privilégios de rede, sem acesso especial. O único requisito é que a vítima abra o arquivo.

Detalhamento estágio por estágio:

  1. Crafting do arquivo — Atacante modifica um arquivo .xls legítimo, especificamente a seção de registro de objeto, para incluir um valor de tamanho malformado e um payload. Ferramentas da era (módulos Metasploit, scripts Python customizados usando internals xlwt) tornavam isso direto.

  2. Entrega — Attachment de email é o vetor clássico. Um website malicioso solicitando download, um compartilhamento de arquivo comprometido, ou até uma biblioteca de documentos do SharePoint funcionam igualmente bem. Note que SharePoint Server 2007 está na lista de CPEs afetados—renderização de visualização do lado do servidor é um caso extremo interessante aqui.

  3. Gatilho — Abertura do arquivo. Sem prompts de macro. Sem diálogos incomuns. A corrupção acontece durante parsing, antes do usuário ver qualquer coisa suspeita.

  4. Exploração — Manipulação de heap converte a corrupção em um primitivo de escrita controlado, redirecionando finalmente o fluxo de execução para shellcode embutido no documento.

  5. Pós-exploração — O atacante desembarca no contexto do usuário logado. Em 2009, isso frequentemente significava um usuário de domínio com admin local—movimento lateral daqui era trivial.


Quem Realmente Está em Risco

Se você está rodando uma suite Office moderna totalmente patcheada, você não é o público aqui. Mas vamos ser realistas sobre quem é:

  • Ambientes industriais e governamentais legados rodando Office 2003 ou XP após fim do suporte, onde gerenciamento de patches é uma oração trimestral ao invés de uma prática semanal.
  • Redes desconectadas (ambientes OT/ICS, sistemas air-gapped) onde patches requerem deployment manual e frequentemente ficam anos atrás.
  • Qualquer organização ainda processando arquivos .xls através de pipelines automatizados usando bibliotecas antigas de parsing do Excel que compartilham o mesmo código vulnerável.

O histórico de exploração em campo é o que eleva isso de teórico. CVE-2009-0557 foi ativamente weaponizado por atores APT visando contratados de defesa e instituições financeiras em 2009—o timing se alinha com campanhas conhecidas de grupos de ameaça que estavam pesadamente alavancando exploits de documentos do Office como seu vetor primário de acesso inicial durante este período.

Indústrias a priorizar: Finanças (Excel é praticamente uma religião), contratados de defesa, agências governamentais, e qualquer um rodando Office em endpoints Windows XP/Vista legados que não foram descomissionados.


Detecção & Hunting

Detectar exploração desta vulnerabilidade se resume a duas coisas: comportamento de processo e anomalias de conteúdo de arquivo.

Como a exploração se parece no seu SIEM/EDR:

  • excel.exe spawnando cmd.exe, powershell.exe, ou wscript.exe como processo filho
  • excel.exe fazendo conexões de rede outbound (não há razão legítima para isso na abertura de documento)
  • Carregamentos incomuns de DLL no espaço de processo do Excel pós-abertura-de-documento

Regra Sigma conceitual para o indicador comportamental:

yaml
title: Suspicious Excel Child Process — Possible Document Exploit
id: a3f7c291-5b2e-4d88-9c1a-0e3f8b7d6421
status: experimental
description: >
  Detects Excel spawning suspicious child processes, which may indicate
  exploitation of document-based vulnerabilities like CVE-2009-0557.
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    ParentImage|endswith: '\excel.exe'
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
      - '\rundll32.exe'
  condition: selection
falsepositives:
  - Some legitimate Excel macros may spawn these processes
  - Document automation tools
level: high
tags:
  - attack.execution
  - attack.t1203
  - attack.t1566.001

Hunting em nível de arquivo: Scaneie repositórios de documentos procurando arquivos .xls com tamanhos de registro de objeto que excedem limites razoáveis ou que contenham padrões de byte semelhantes a shellcode (regiões de alta entropia, NOP sleds) nas seções de dados. Ferramentas como oletools (olevba, mraptor) podem sinalizar estruturas binárias suspeitas em arquivos do Office.


Playbook de Mitigação

  1. Faça patch imediatamente — Aplique MS09-021 se ainda não fez (e se for 2024 e ainda não fez, precisamos conversar). Esta é a única correção real.

  2. Se fazer patch é impossível:

    • Habilite Protected View no Office 2010+ (que abria arquivos de email/internet em modo sandboxed somente leitura por padrão—esse recurso foi uma resposta direta a anos de exploits de documentos como este)
    • Deploy EMET (em sistemas legados) ou configurações modernas de Exploit Protection para aplicar DEP e ASLR a processos do Office
    • Configure gateways de email para remover ou quarentena attachments .xls de remetentes externos
  3. Endurecimento de longo prazo:

    • Migre para .xlsx (OOXML) onde possível—enquanto não é imune a bugs, o formato baseado em XML não carrega a mesma superfície de ataque de parsing BIFF legado
    • Implemente application whitelisting para prevenir excel.exe de spawnar cmd/powershell
    • Considere Microsoft Defender Application Guard for Office em deployments modernos
  4. Verifique proteção:

    • Confirme instalação de patch: Verifique versão de arquivo excel.exe—MS09-021 bumped Excel 2003 para 11.0.8306.0 e Excel 2007 para 12.0.6504.5000
    • Rode scan de arquivo AV com assinaturas atualizadas em repositórios de documentos compartilhados

Minha Análise

O score CVSS de 7.8 é argumentavelmente conservador dado o contexto de exploração do mundo real. Se vou ser honesto, esse bug em 2009 estava mais próximo de um 9+ em termos de impacto prático—requeria apenas interação do usuário (abrir um arquivo), afetava virtualmente toda organização no planeta que usava Microsoft Office (o que era essencialmente todas elas), e desembarcava sem fatores mitigantes como autenticação ou restrições de rede. O scoring de "sem impacto de confidencialidade/integridade" parece desconectado da realidade de que execução de código arbitrário é compromisso completo de confidencialidade e integridade.

O risco real aqui não é complexidade técnica—é confiança. Pessoas abrem arquivos do Excel. Abrem arquivos de colegas, de clientes, de vendedores. A barreira de engenharia social para exploração é essencialmente zero. É por isso que exploits baseados em documentos se tornaram o vetor dominante de acesso inicial para campanhas APT ao longo do final dos anos 2000 e início dos anos 2010, e por que o modelo inteiro de ameaça "attachment de email = execução" ainda domina spear-phishing hoje.

O que a comunidade de segurança deveria aprender de CVE-2009-0557—e francamente, de toda a família de vulnerabilidades do parser BIFF—é que parsers de formato legado são superfícies de ataque eternas. Microsoft passou anos patcheando o mecanismo de parsing de registro do Excel porque o formato foi projetado para interoperabilidade, não segurança. Toda vez que projetamos um formato de arquivo ou protocolo priorizando compatibilidade retroativa sobre validação estrita, estamos escrevendo CVEs futuros. A transição para OOXML foi parcialmente uma decisão de segurança. A lição se aplica hoje a todo protocolo customizado e parser que você está deployando.


Linha do Tempo

DataEvento
2009 (início)Vulnerabilidade provavelmente descoberta/reportada para Microsoft
2009-05-12Microsoft lança MS09-021 patcheando CVE-2009-0557 junto com múltiplos RCEs do Excel
2009-05-12Divulgação pública via Microsoft Security Bulletin MS09-021
2009 Q2–Q3Exploração ativa observada em campanhas de ataque direcionado
2013-04-08Office 2003 atinge fim do suporte — sistemas não patcheados permanentemente congelados em estado vulnerável

Referências

Achou este artigo interessante? Siga-me no X e no LinkedIn.