What is Microsoft Excel?
Microsoft Excel is the world's dominant spreadsheet application, part of the Microsoft Office suite. The Excel binary format (.XLS — Binary Interchange File Format or BIFF) is an intricate binary structure containing hundreds of record types for workbook content, formulas, formatting, charts, and metadata. Each record type has its own parsing logic, and inconsistencies or invalid fields within records can trigger memory corruption in the parser. Excel BIFF parsing vulnerabilities yielded a steady stream of high-severity CVEs throughout 2005–2012 as security researchers and attackers systematically analyzed the format's complexity.
Overview
CVE-2009-3129 is a high-severity memory corruption vulnerability (CWE-787, CVSS 7.8) in Microsoft Office Excel. A crafted .XLS spreadsheet containing a FEATHEADER record with an invalid cbHdrData size field causes a pointer offset calculation error, leading to an out-of-bounds write and potential code execution when the file is opened. Patched in Microsoft Security Bulletin MS09-067 (November 2009 Patch Tuesday). CISA added to KEV in March 2022.
Affected Versions
| Product | Vulnerable | Fixed |
|---|---|---|
| Microsoft Excel 2002 (Office XP) | Before November 2009 patch | Apply MS09-067 |
| Microsoft Excel 2003 | Before November 2009 patch | Apply MS09-067 |
| Microsoft Excel 2007 | Before November 2009 patch | Apply MS09-067 |
| Microsoft Excel Viewer | Before November 2009 patch | Apply MS09-067 |
| Microsoft Office Compatibility Pack | Before November 2009 patch | Apply MS09-067 |
Technical Details
The vulnerability (CWE-787: Out-of-Bounds Write) exists in Excel's parsing of the FEATHEADER record in binary .XLS files. The FEATHEADER record is a BIFF record type that describes worksheet-level features and their configuration — used for features like list validation, cell formulas with structured references, and table functionality.
The FEATHEADER record contains a cbHdrData field specifying the size (in bytes) of the header data that follows. Excel uses this size field to calculate pointer offsets into the record's data area for accessing feature-specific configuration.
The vulnerability:
- An attacker crafts a .XLS file with a
FEATHEADERrecord containing acbHdrDatavalue that is too small (or invalid) relative to the actual data present - Excel uses the invalid
cbHdrDatato compute a pointer offset into the record's data - The miscalculated pointer results in Excel writing to memory outside the intended buffer boundaries
- This out-of-bounds write corrupts adjacent heap memory, potentially overwriting allocator metadata or other heap objects
- Through heap spraying, execution can be redirected to attacker-controlled shellcode
Discovery
Identified through detailed analysis of the Excel BIFF format's record types and reported to Microsoft. MS09-067 addressed this alongside several other Excel record handling vulnerabilities in November 2009, reflecting the continued systematic security review of Excel's binary format parser.
Exploitation Context
Excel BIFF record parsing vulnerabilities were a primary vector for targeted intrusions throughout 2009–2012:
- Financial sector targeting: Malicious Excel spreadsheets — fake financial reports, budget models, market data — were weaponized in targeted spear phishing against financial institutions, hedge funds, and corporate finance teams
- APT toolkits: State-sponsored groups maintained collections of Excel exploit files targeting specific BIFF record vulnerabilities, updating their toolkits as patches were released and new vulnerabilities discovered
- High open rates: Excel files have high open rates in business contexts — recipients with accounting or finance roles routinely open Excel attachments without question, making Excel a reliable delivery mechanism for targeted payloads
- Legacy Office persistence: The March 2022 KEV addition reflects ongoing exploitation of systems still running Office 2002/2003, particularly in industrial environments where upgrade cycles are slow
Remediation
- Apply MS09-067: Install the November 2009 Patch Tuesday cumulative update for all affected Office versions.
- Upgrade off end-of-life Office: Office 2002/2003 are past end-of-life with no security support. Upgrade to Microsoft 365 or a current Office version.
- Enable Protected View: Modern Excel versions open files from the internet and email in Protected View (sandbox), blocking parser exploitation.
- Block legacy .XLS at email gateways: If binary .XLS is not required by business processes, block it at the gateway and require .XLSX (Open XML format).
- Apply Attack Surface Reduction rules: Microsoft Defender ASR rules can block Office document macro execution and inter-process injection, limiting post-exploitation impact even if a file is opened.
Key Details
| Property | Value |
|---|---|
| CVE ID | CVE-2009-3129 |
| Vendor / Product | Microsoft — Excel |
| NVD Published | 2009-11-11 |
| NVD Last Modified | 2025-10-22 |
| CVSS 3.1 Score | 7.8 |
| CVSS 3.1 Vector | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Severity | HIGH |
| CWE | CWE-787 find similar ↗ |
| CISA KEV Added | 2022-03-03 |
| CISA KEV Deadline | 2022-03-24 |
| Known Ransomware Use | No |
CVSS 3.1 Breakdown
Required Action
Timeline
| Date | Event |
|---|---|
| 2009-11-10 | Microsoft released Security Bulletin MS09-067 (November 2009 Patch Tuesday) patching multiple Excel vulnerabilities including CVE-2009-3129 |
| 2009-11-11 | CVE-2009-3129 published |
| 2022-03-03 | CISA added to KEV — reflecting continued exploitation of legacy Excel installations |
| 2022-03-24 | CISA BOD 22-01 remediation deadline |
References
| Resource | Type |
|---|---|
| NVD — CVE-2009-3129 | Vulnerability Database |
| CISA KEV Catalog Entry | US Government |
| Microsoft Security Bulletin MS09-067 | Vendor Advisory |