← volver
CVE-2009-3129highbajo ataqueCWE-787

CVE-2009-3129

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA, tiene exploit funcional público y 1 grupo(s) de amenaza la utilizan.

ssvc Actcvss 7.8epss 86%
de la publicación al arma283 días
Publicada en NVD11 nov
1ª PoC+283d
metasploit10 nov
CISA KEV+4495d
probabilidad de explotación
86%top 1% de las CVE
explotación observada
CISA + VulnCheck
1 grupo(s)3 exploit(s) público(s)
Quién la explota1

Grupos conocidos por explotar esta vulnerabilidad (atribución MITRE ATT&CK).

Acción exigida por CISAplazo federal: 2022-03-24

Apply updates per vendor instructions.

Resumen

Falha de corrupção de memória no parser de arquivos binários (BIFF) do Microsoft Excel, disparada por um registro FEATHEADER (tag 0x867) com o campo cbHdrData manipulado para um valor inválido, que é usado no cálculo de um deslocamento de ponteiro. Abrir uma planilha .xls maliciosa é suficiente para execução de código arbitrário no contexto do usuário logado. É item do catálogo KEV da CISA e tem exploit público e módulo Metasploit, mas a superfície real hoje é pequena: afeta apenas versões de Office já fora de suporte há mais de uma década.

Detalle técnico

A vulnerabilidade está no parser do formato binário legado do Excel (BIFF8), especificamente no tratamento do registro 'Shared Feature Header' (FEATHEADER, tag 0x867). Esse registro tem um campo de tamanho, cbHdrData, que descreve quantos bytes de dados adicionais seguem. O código de leitura usa esse valor para calcular o deslocamento (offset) de um ponteiro dentro do buffer que representa o registro.

Quando o cbHdrData é definido com um valor inconsistente com o tamanho real dos dados no arquivo, o cálculo do offset produz um ponteiro fora dos limites esperados. O atacante controla diretamente esse valor porque ele é lido do próprio arquivo, sem validação de faixa contra o tamanho real do buffer. O resultado é uma escrita ou leitura de memória fora dos limites (memória corrompida), que pode ser transformada em execução de código controlado pelo atacante através de um payload cuidadosamente construído no restante do arquivo.

A CISA classifica a entrada no KEV sob CWE-94 (Code Injection), mas a mecânica descrita pelo próprio fornecedor e pela ZDI (que reportou a falha sob ZDI-CAN-587) é de corrupção de memória por deslocamento de ponteiro inválido — mais alinhada a um problema clássico de leitura/escrita fora dos limites do que a injeção de código em sentido estrito.

A vulnerabilidade foi originalmente descoberta por Sean Larsson e reportada ao fornecedor via Zero Day Initiative (ZDI-09-083) em 20/10/2009, com divulgação coordenada em 10/11/2009, coincidindo com o lançamento do boletim MS09-067.

Cómo se explota

O vetor é client-side: o atacante entrega um arquivo .xls malformado (tipicamente por e-mail ou download) e depende de interação do usuário para abri-lo no Excel vulnerável. Não há componente de rede a explorar remotamente sem essa abertura manual — por isso o vetor CVSS é AV:L (local), apesar de a entrega ser 'remota' no sentido de vir de um atacante externo. Não é necessária autenticação nem configuração fora do padrão; qualquer instalação afetada que abra o arquivo está exposta.

Existe exploit público (exploit-db 14706) que gera um arquivo .xls com o registro FEATHEADER malformado, embutindo shellcode para abrir cmd.exe via WinExec — prova de conceito funcional testada contra Excel 2003/2007 em Windows XP SP2. Há também módulo Metasploit disponível, o que reduz a complexidade de reprodução para quem já tem o arquivo malicioso e precisa apenas adaptar o payload.

A presença no catálogo KEV da CISA confirma exploração ativa histórica, mas a data de inclusão (2022-03-03) é muito posterior à divulgação original (2009), refletindo o padrão da CISA de catalogar vulnerabilidades antigas ainda usadas em campanhas oportunistas contra sistemas não corrigidos, não necessariamente exploração ativa contínua e generalizada hoje.

Versiones

Afectadas
Microsoft Office Excel 2002 SP3; Office Excel 2003 SP3; Office Excel 2007 SP1 e SP2; Microsoft Office 2004 for Mac; Microsoft Office 2008 for Mac; Open XML File Format Converter for Mac; Microsoft Office Excel Viewer 2003 SP3; Microsoft Office Excel Viewer SP1 e SP2; Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats SP1 e SP2.
Corregidas en
Corrigido pelo boletim MS09-067 (KB972652), via os pacotes específicos por produto: KB973471 (Excel 2002 SP3), KB973475 (Excel 2003 SP3), KB973593 (Excel 2007 SP1/SP2 — requer também KB973704), KB976830 (Office 2004 for Mac), KB976828 (Office 2008 for Mac), KB976831 (Open XML File Format Converter for Mac), KB973484 (Excel Viewer 2003 SP3), KB973707 (Excel Viewer SP1/SP2) e KB973704 (Office Compatibility Pack SP1/SP2). Este boletim substitui o MS09-021 anterior.

Cómo protegerse

A correção oficial é o boletim MS09-067 (10/11/2009), que altera a forma como o Excel analisa registros malformados no formato binário. Os pacotes por produto: KB973471 (Excel 2002 SP3), KB973475 (Excel 2003 SP3), KB973593 (Excel 2007 SP1/SP2), KB976830 (Office 2004 for Mac), KB976828 (Office 2008 for Mac), KB976831 (Open XML File Format Converter for Mac), KB973484 (Excel Viewer 2003 SP3), KB973707 (Excel Viewer SP1/SP2) e KB973704 (Office Compatibility Pack para Word/Excel/PowerPoint 2007 SP1/SP2). Importante: para Excel 2007 SP1/SP2, o KB973593 por si só não protege completamente — o boletim exige também a instalação do KB973704 (atualização do Compatibility Pack) para cobrir os mesmos formatos de arquivo.

Como paliativo real na ausência de patch, o próprio boletim aponta que, após corrigido, o Excel passa a rejeitar/travar ao encontrar o registro malformado em vez de executar código — ou seja, não há flag de configuração que desative o parser vulnerável sem quebrar a leitura de arquivos .xls legítimos. Bloqueio de anexos .xls de origem não confiável em gateways de e-mail, ou forçar abertura em modo de visualização protegida (Protected View, disponível em versões mais recentes do Office) reduz a superfície, mas não elimina a falha em versões desatualizadas.

O que não funciona: como o vetor exige apenas abrir o arquivo localmente, controles de rede (firewall, segmentação) não mitigam o risco — a única defesa efetiva é a atualização do software ou a remoção/isolamento do componente vulnerável (versões de Office 2002/2003/2007 e Mac 2004/2008, hoje todas fora do ciclo de suporte, deveriam ser substituídas por versões atuais, não apenas patcheadas).

Cómo detectar

O indicador mais concreto é a presença, em um arquivo .xls (formato BIFF), de um registro FEATHEADER (tag 0x867) cujo campo cbHdrData não corresponde ao tamanho real dos dados que seguem no registro — isso pode ser verificado por ferramentas de parsing/análise estática de OLE/BIFF ou por regras de assinatura em antivírus/EDR que já reconhecem o padrão do exploit público (exploit-db 14706) e do módulo Metasploit correspondente.

Como o vetor é local (abertura de arquivo, sem tráfego de rede associado à exploração em si), não há sinal confiável de rede a monitorar; a detecção depende de inspeção de anexos/downloads em gateways de e-mail ou de telemetria de endpoint mostrando o Excel travando ou executando processos filhos inesperados (ex.: cmd.exe) imediatamente após abrir um documento .xls externo.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
Microsoft Office Excel 2002 SP3, 2003 SP3, and 2007 SP1 and SP2; Office 2004 and 2008 for Mac; Open XML File Format Converter for Mac; Office Excel Viewer 2003 SP3; Office Excel Viewer SP1 and SP2; and Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats SP1 and SP2 allows remote attackers to execute arbitrary code via a spreadsheet with a FEATHEADER record containing an invalid cbHdrData size element that affects a pointer offset, aka "Excel Featheader Record Memory Corruption Vulnerability."
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Productos afectados
n/a · n/a
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.