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

CVE-2009-3129: A Vulnerabilidade FEATHEADER do Excel Que Transformou Planilhas em Armas

Para entender essa vulnerabilidade, você precisa saber o que é um registro `FEATHEADER`. O formato de arquivo binário do Excel (`.

@0xrafasecFebruary 18, 2026cve-analysis

CVSS: 7.8/10 (HIGH)

Affected: cpe:2.3:a:microsoft:excel:2002:sp3:*:*:*:*:*:*; cpe:2.3:a:microsoft:excel:2003:sp3:*:*:*:*:*:*; cpe:2.3:a:microsoft:excel:2007:sp1:*:*:*:*:*:*; cpe:2.3:a:microsoft:excel:2007:sp2:*:*:*:*:*:*; cpe:2.3:a:microsoft:excel_viewer:-:sp1:*:*:*:*:*:*; cpe:2.3:a:microsoft:excel_viewer:-:sp2:*:*:*:*:*:*; cpe:2.3:a:microsoft:excel_viewer:2003:sp3:*:*:*:*:*:*; cpe:2.3:a:microsoft:office:2004:*:*:*:*:macos:*:*; cpe:2.3:a:microsoft:office:2008:*:*:*:*:macos:*:*; cpe:2.3:a:microsoft:open_xml_file_format_converter:*:*:*:*:*:macos:*:*

Available in English

Share:

CVE-2009-3129: A Vulnerabilidade FEATHEADER do Excel Que Transformou Planilhas em Armas

Abrir uma planilha que seu colega enviou por email deveria ser seguro. Em 2009, em praticamente todas as versões do Microsoft Excel existentes, não era — e tudo o que era necessário era um único registro malformado enterrado profundamente no formato de arquivo binário para dar a um atacante controle completo da sua máquina.


🎯 Impacto: Execução remota de código via arquivo .xls malicioso, sem autenticação necessária
🔓 Vetor de Ataque: Rede (entregue via email, web ou compartilhamento de arquivos)
💥 Exploração: Moderada — requer que o usuário abra o arquivo, nenhuma outra interação necessária
🛡️ Correção Disponível: Sim — MS09-067 (lançado em novembro de 2009)
⏱️ Aplique o Patch Agora: Apenas sistemas legados — aplique imediatamente se ainda estiver executando versões afetadas

O Que Realmente Está Acontecendo

O Registro FEATHEADER: Background Que Você Precisa Saber

Para entender essa vulnerabilidade, você precisa saber o que é um registro FEATHEADER. O formato de arquivo binário do Excel (.xls, o formato BIFF8) é estruturado como uma sequência de registros tipados, cada um com um código de tipo, um comprimento e um payload de dados. O registro FEATHEADER (0x0867) faz parte do mecanismo de "Shared Feature" do Excel — funciona como um cabeçalho para recursos como validação de lista, smart tags e proteção aprimorada. Pense nisso como um manifesto de funcionalidade opcional incorporada à planilha.

Dentro de FEATHEADER, há um campo chamado cbHdrData — um elemento de tamanho que diz ao parser quantos bytes de dados de cabeçalho seguem. É aqui que as coisas dão terrivelmente errado.

A Causa Raiz: Aritmética Que Você Não Pode Confiar

A vulnerabilidade é uma corrupção clássica de aritmética de ponteiros decorrente da validação ausente ou insuficiente do campo cbHdrData. Quando o Excel analisa o registro FEATHEADER, ele usa cbHdrData para calcular um deslocamento de ponteiro em sua própria memória — essencialmente fazendo algo conceitualmente equivalente a:

c
// Representação conceitual — NÃO é código-fonte real da Microsoft
void parse_featheader(uint8_t *record_data, size_t record_len) {
    FEATHEADER *hdr = (FEATHEADER *)record_data;
    
    // cbHdrData é controlado pelo atacante — sem verificação de limites aqui
    uint16_t cbHdrData = hdr->cbHdrData;
    
    // Aritmética de ponteiros com valor de tamanho não confiável
    // Se cbHdrData for inválido, next_structure aponta para algo perigoso
    void *next_structure = (uint8_t *)hdr + sizeof(FEATHEADER) + cbHdrData;
    
    // O Excel então lê/escreve em next_structure — corrupção de memória
    process_feature_data(next_structure);
}

O campo cbHdrData não é validado contra o comprimento real do registro restante antes de ser usado para calcular onde a próxima estrutura de dados vive na memória. Forneça um valor de tamanho inadequado ou elaborado e você redirecionou o ponteiro interno do Excel para uma região de memória controlada pelo atacante. As operações de escrita que seguem completam a corrupção.

Isso é um CWE-787 (Out-of-Bounds Write) em sua essência. A falha de design não é exótica — é o erro antigo de confiar em um campo de comprimento de entrada não confiável antes de verificar se faz sentido geométrico dentro do buffer circundante. A mesma classe de bug apareceu em praticamente todos os parsers de formato binário complexo já escritos, de leitores de PDF a mecanismos de fonte. Formatos binários que codificam "offset daqui" ou "tamanho do próximo chunk" sem validação independente são fábricas de vulnerabilidade perenes.

O que torna o formato BIFF particularmente traiçoeiro é sua extrema complexidade. BIFF8 define centenas de tipos de registro acumulados ao longo de décadas de desenvolvimento do Excel. Cada tipo de registro tem seu próprio parser, e a superfície de ataque é enormemente vasta. Um único erro em um desses centenas de parsers é tudo o que é necessário.


Caminho de Exploração

Veja como um atacante real teria weaponizado isso:

Loading diagram…

Pré-requisitos: Zero autenticação, zero acesso de rede ao alvo. A vítima apenas precisa abrir um arquivo. Em um ambiente corporativo, esse é uma barra trivialmente baixa.

A cadeia de ataque na prática:

  1. Criar um arquivo .xls com aparência válida com um registro FEATHEADER malformado. O arquivo abre sem falha imediata — a corrupção acontece silenciosamente durante a análise.
  2. Entregar via phishing com spear. "Q3 Budget Review.xls" anexado a um email de um endereço interno falsificado. As taxas de conversão neste método de entrega em 2009 eram alarmantemente altas.
  3. Disparar análise automaticamente quando o Excel carrega o arquivo. Nenhuma macro necessária, nenhum prompt "Enable Content" — isso dispara apenas da estrutura binária.
  4. Explorar o ponteiro corrompido para alcançar escritas controladas. Em 2009, sem ASLR obrigatório e DEP em versões mais antigas do Windows, transformar uma primitiva de escrita em execução de código era bem compreendido.
  5. Executar shellcode arbitrário sob o contexto do usuário conectado. No Windows XP (dominante em 2009), isso costumava ser administrador local.

O cenário de ataque do mundo real escreve a si mesmo: um membro da equipe de finanças recebe um "template de orçamento atualizado" do que parece ser o CFO. Um duplo clique e o atacante está dentro da rede corporativa.


Quem Realmente Está Em Risco

A lista de versões afetadas aqui é impressionante em sua amplitude. Isso não é uma questão de configuração de nicho — abrange:

  • Excel 2002, 2003, 2007 (todas as variantes de service pack em uso na época)
  • Office para Mac 2004 e 2008 — impacto multiplataforma, o que era mais raro então
  • Excel Viewer — até o viewer apenas leitura simplificado era vulnerável
  • Office Compatibility Pack — significando que até usuários que não tiveram feito upgrade completo para Office 2007 estavam expostos

Em 2009, isso era essencialmente toda a base de usuários do Excel instalada. Mas quem ainda deveria se preocupar hoje?

AmbienteNível de RiscoMotivo
Windows XP/Vista fim-de-vida com Office legado🔴 CríticoSem patch, ASLR/DEP não enforçado
Ambientes industrial/OT com stacks de software congelados🔴 CríticoAvesso a mudanças, frequentemente anos atrasados em patches
Office legado em Windows moderno (sem patch)🟠 AltoMitigação do SO, mas ainda vulnerável
Office moderno totalmente patchado🟢 NenhumNão afetado
Redes segregadas🟡 MédioRisco de entrega menor, mas ameaça interna permanece

Essa vulnerabilidade foi confirmada como explorada na natureza. Múltiplos atores de ameaça a incorporaram em kits de exploit e campanhas de phishing com spear através de 2010 e além. Setores industrial e governamental que executam stacks de software legado são a preocupação contínua — se você encontrar Excel 2003 SP3 em qualquer lugar em seu ambiente hoje, trate como uma descoberta crítica.


Detecção e Hunting

Detectar exploração dessa vulnerabilidade requer uma abordagem em camadas, uma vez que o gatilho é uma abertura passiva de arquivo.

O que procurar em seu SIEM/EDR:

  • excel.exe ou excelcnv.exe gerando processos filho inesperados (cmd.exe, powershell.exe, wscript.exe)
  • excel.exe fazendo conexões de rede de saída para destinos não-Microsoft
  • Gravações de arquivo em %TEMP% ou %APPDATA% por processos Office imediatamente após eventos de abertura de arquivo
  • Crashes do Excel seguidos de criação de novo processo (indicativo de tentativas de exploit instáveis)

Regra conceitual de detecção Sigma:

yaml
title: Suspicious Excel Child Process - Possible CVE-2009-3129 Exploitation
id: a3f9c1e2-XXXX-XXXX-XXXX-excel-featheader
status: experimental
description: >
  Detects Excel spawning suspicious child processes, consistent with
  exploitation of FEATHEADER memory corruption vulnerabilities.
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    ParentImage|endswith:
      - '\excel.exe'
      - '\excelcnv.exe'
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\rundll32.exe'
      - '\mshta.exe'
  condition: selection
falsepositives:
  - Legitimate macro-enabled workbooks that invoke shell commands
  - DDE-based automation workflows
level: high
tags:
  - attack.execution
  - attack.t1203
  - cve.2009-3129

IOCs em nível de arquivo: Arquivos .xls maliciosos explorando isso terão estrutura BIFF8 sintaticamente válida mas com registros FEATHEADER contendo valores cbHdrData que não correspondem ao comprimento real do registro. Assinaturas de antivírus capturando esse padrão específico têm sido confiáveis desde 2009, mas wrappers de entrega novel (ZIPs protegidos por senha, containers criptografados) ainda podem escapar da varredura baseada em assinatura.


Playbook de Mitigação

1. Imediato (faça isso agora se estiver em versões afetadas):

  • Aplique MS09-067 — essa é a correção definitiva. Sem desculpas se você estiver em uma plataforma suportada.
  • Se o patch estiver bloqueado por gerenciamento de mudanças, desabilite a abertura de arquivos .xls de fontes não confiáveis no nível do gateway de email.

2. Curto prazo se o patch estiver atrasado:

  • Habilite Microsoft Office File Block via Group Policy para impedir que o Excel abra arquivos de formato BIFF4/BIFF8 de zonas não confiáveis.
  • Use Protected View (Excel 2010+) — arquivos abertos de email ou internet são sandboxados e a análise ocorre em um contexto restrito.
  • Implante EMET (em sistemas da era Windows 7/8) ou garanta que DEP e ASLR obrigatórios sejam enforçados em todo o sistema — isso não impede o bug mas torna a exploração confiável dramaticamente mais difícil.

3. Endurecimento de longo prazo:

  • Elimine instalações legadas de Office do seu ambiente. Completamente.
  • Implemente application allowlisting — se o Excel não puder gerar cmd.exe, o impacto pós-exploração é severamente restringido.
  • Rotear todos os documentos do Office através de um ambiente de detonação sandboxado (baseado em nuvem ou on-prem) antes da entrega aos usuários finais.
  • Desabilite macros e suporte a formato legado no nível de política se seu negócio não os exigir.

4. Verifique se você está protegido:

  • Execute winver e confirme o nível de patch do SO; faça referência cruzada com KB973471 (MS09-067).
  • Use um scanner de vulnerabilidade para confirmar a versão patchada do Excel está instalada.
  • Teste o filtro do seu gateway de email com um arquivo .xls com padrão EICAR para confirmar que a varredura de anexo está ativa.

Minha Análise

O score CVSS de 7.8 é honestamente conservador para as condições que existiam em 2009. A classificação "High" é tecnicamente correta pelo rubrica — requer interação do usuário (abrindo um arquivo) o que coloca um teto no score. Mas na prática, conseguir um usuário abrir uma planilha é uma das barras de engenharia social mais baixas existentes. Em impacto do mundo real, isso era um caminho quase trivial para execução de código em praticamente toda a base de instalação do Excel. Se você ajustar pela probabilidade realista de exploração em um cenário de phishing corporativo, o risco efetivo é mais próximo de crítico.

O que essa vulnerabilidade ilustra é um modo de falha que a comunidade de segurança conhece há décadas e continua redescubrindo: parsers de formato binário complexo são pesadelos de confiabilidade e segurança. O formato BIFF foi projetado em uma era quando "confiar no arquivo" era a suposição padrão. Campos de comprimento não eram entradas adversariais — eram apenas dados. Essa suposição se embutiu em milhares de linhas de código do parser em toda a base de código do Office, e bugs como esse foram o resultado previsível. A mudança para OOXML (.xlsx) como formato padrão no Office 2007 foi genuinamente uma melhoria de segurança, mesmo que tenha introduzido sua própria superfície de ataque.

A lição mais ampla para a comunidade de segurança é sobre débito de software legado. Essa vulnerabilidade foi patchada em novembro de 2009. Ainda assim, eu seria genuinamente não surpreso encontrá-la sem patch em sistemas adjacentes a SCADA, workstations incorporadas em ambientes de manufatura, ou no laptop de um diretor de finanças que "nunca precisou fazer upgrade". A vulnerabilidade é antiga. O risco, em certos ambientes, ainda está presente. Quando você está fazendo um inventário de ativos, Excel 2003 em qualquer máquina deveria ser tratado como uma descoberta crítica — não por nostalgia, mas porque atores de ameaça sabem exatamente onde encontrar superfície de ataque desmanutida.


Timeline

DataEvento
2009 (estimado)Vulnerabilidade identificada, provavelmente através de exploração ativa ou pesquisa de segurança
2009-10-13Microsoft reconhece a vulnerabilidade antes do lançamento do patch
2009-11-10MS09-067 lançado como parte de November Patch Tuesday — corrige Excel 2002 até 2007 e viewers relacionados
2009-11-10CVE-2009-3129 publicamente divulgado via Microsoft Security Bulletin
2010 em dianteExploração observada em ataques direcionados; incorporada em campanhas de phishing com spear

Referências

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