Microsoft Office PowerPoint Code Injection (CVE-2009-0556)
Detects exploitation attempts of CVE-2009-0556, a code injection vulnerability in Microsoft Office PowerPoint. Attackers can exploit this vulnerability via crafted PowerPoint files to execute arbitrary code in the context of the logged-in user. This CVE is listed in CISA's Known Exploited Vulnerabilities catalog.
Vulnerability Intelligence
KEV — Known ExploitedAffected Software
- Vendor
- Microsoft
- Product
- Office
Weakness (CWE)
Timeline
- Disclosed
- January 7, 2026
CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
What is CVE-2009-0556 Microsoft Office PowerPoint Code Injection (CVE-2009-0556)?
Microsoft Office PowerPoint Code Injection (CVE-2009-0556) (CVE-2009-0556) maps to the Initial Access and Execution tactics — the adversary is trying to get into your network in MITRE ATT&CK.
This page provides production-ready detection logic for Microsoft Office PowerPoint Code Injection (CVE-2009-0556), covering the data sources and telemetry it touches: Microsoft Defender for Endpoint, Microsoft Sentinel. The queries below are rated high severity at medium confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.
MITRE ATT&CK
- Tactic
- Initial Access Execution
let suspiciousPptExtensions = dynamic(['.ppt', '.pptx', '.pps', '.ppsx', '.pot', '.potx']);
let lookback = 48h;
union DeviceProcessEvents, DeviceFileEvents
| where Timestamp > ago(lookback)
| where InitiatingProcessFileName =~ 'powerpnt.exe'
or (ActionType == 'FileCreated' and FileName has_any (suspiciousPptExtensions))
| where InitiatingProcessParentFileName in~ ('winword.exe', 'excel.exe', 'outlook.exe', 'powerpnt.exe')
or (InitiatingProcessFileName =~ 'powerpnt.exe' and FileName has_any (suspiciousPptExtensions) and FolderPath has_any ('\\Temp\\', '\\AppData\\', '\\Downloads\\'))
| extend suspicionReason = case(
InitiatingProcessFileName =~ 'powerpnt.exe' and ProcessCommandLine has_any ('cmd.exe', 'powershell', 'wscript', 'cscript', 'mshta'), 'PowerPoint spawning shell',
FolderPath has_any ('\\Temp\\', '\\AppData\\Local\\Temp\\'), 'Suspicious temp path',
true(), 'General anomaly'
)
| project Timestamp, DeviceName, AccountName, InitiatingProcessFileName, FileName, FolderPath, ProcessCommandLine, suspicionReason Detects PowerPoint spawning suspicious child processes or creating files in temp paths, consistent with CVE-2009-0556 exploitation via crafted .ppt files.
Data Sources
Required Tables
False Positives
- Legitimate macros in PowerPoint files that launch scripts for business automation
- IT deployment tools that use PowerPoint templates with scripting hooks
- Security training or red team exercises running simulated phishing payloads
Sigma rule & cross-platform mapping
The detection logic for Microsoft Office PowerPoint Code Injection (CVE-2009-0556) (CVE-2009-0556) above is provided in a vendor-neutral
form so you can deploy it on any SIEM. The same logic is shipped here as native
KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the
following logsource:
logsource:
category: process_creation
product: windows Browse the community-maintained Sigma rules for this technique:
Platform-specific guides for CVE-2009-0556
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1PowerPoint Spawning cmd.exe (Simulated CVE-2009-0556 Payload Execution)
Expected signal: Process creation event: parent=POWERPNT.EXE, child=cmd.exe with arguments '/c whoami'
- Test 2PowerPoint Spawning PowerShell with Encoded Command
Expected signal: Sysmon Event ID 1: Image=powershell.exe, ParentImage=powerpnt.exe, CommandLine contains -EncodedCommand
- Test 3Crafted PPT File Drop to Temp Directory
Expected signal: File creation event: FileName=exploit_test.ppt, FolderPath contains \Temp\
Response Playbook
Triage
- Identify the source PowerPoint file: retrieve the file path, hash (MD5/SHA256), and confirm whether it originated from email, web download, USB, or network share.
- Determine if the child process (cmd, powershell, etc.) executed any payloads: review command-line arguments for encoded commands, network callbacks, or file drops.
- Check whether the affected user account has admin rights or access to sensitive systems; prioritize containment if so.
- Correlate with email gateway logs to identify if the file was delivered via phishing (CVE-2009-0556 is KEV — assume active exploitation context).
Containment
- Isolate the affected endpoint from the network immediately using EDR network containment or VLAN isolation to prevent lateral movement or C2 callbacks.
- Revoke any tokens or credentials accessed by the affected user session and force password reset if privilege escalation or credential access is suspected.
Evidence Collection
- Collect memory dump of the powerpnt.exe process (and any child processes) for forensic analysis of injected shellcode or in-memory payloads.
- Preserve the crafted PowerPoint file to a secure quarantine location and calculate SHA256; submit to a malware sandbox for dynamic analysis.
Escalation Criteria
- ! Escalate to Incident Response if child processes made outbound network connections, dropped additional executables, or modified registry run keys.
- ! Escalate immediately if multiple hosts are affected, indicating a phishing campaign or worm-like lateral spread leveraging the vulnerability.
Investigation Guide
Forensic Artifacts
- >
Crafted PowerPoint file in %TEMP%, %APPDATA%, or Downloads folder with anomalous embedded OLE objects or streams - >
Windows Event ID 4688 or Sysmon Event ID 1 showing POWERPNT.EXE as parent of cmd.exe, powershell.exe, or scripting hosts - >
Prefetch files for wscript.exe, cscript.exe, or mshta.exe with timestamps correlating to PowerPoint launch time
Tuning Guidance
Start by allowlisting known legitimate PowerPoint macro workflows in your environment. Enrich alerts with file reputation from threat intel feeds before escalating. If PowerPoint macros are disabled by Group Policy, increase confidence to high. Consider correlating with email gateway logs to identify phishing campaigns delivering the crafted .ppt file.
Hunting Queries
Hunt for any PowerPoint-spawned interpreter or LOLBin process across the fleet over the past 7 days to identify previously undetected exploitation attempts.
DeviceProcessEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName =~ 'powerpnt.exe'
| where FileName in~ ('cmd.exe', 'powershell.exe', 'wscript.exe', 'cscript.exe', 'mshta.exe', 'rundll32.exe', 'regsvr32.exe', 'certutil.exe', 'bitsadmin.exe')
| summarize count() by DeviceName, FileName, InitiatingProcessCommandLine, bin(Timestamp, 1h)
| order by count_ desc index=windows source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
| where like(ParentImage, "%powerpnt.exe%")
| where like(Image, "%cmd.exe%") OR like(Image, "%powershell.exe%") OR like(Image, "%wscript.exe%") OR like(Image, "%mshta.exe%")
| stats earliest(_time) as firstSeen, latest(_time) as lastSeen, count by host, Image, ParentImage, CommandLine
| sort -count Atomic Red Team Tests
Simulates the post-exploitation behavior of CVE-2009-0556 by launching cmd.exe from within a PowerPoint macro. Used to validate detection rules in a lab environment.
Command
powershell -Command "$app = New-Object -ComObject PowerPoint.Application; $pres = $app.Presentations.Add(); $slide = $pres.Slides.Add(1, 1); $macro = $pres.VBProject.VBComponents.Add(1); $macro.CodeModule.AddFromString('Sub Auto_Open() Shell ""cmd.exe /c whoami > C:\\Temp\\cve_2009_0556_test.txt"" End Sub'); $pres.SaveAs('C:\\Temp\\test_cve_2009_0556.ppt', 1); $app.Quit()" Cleanup
Remove-Item C:\Temp\cve_2009_0556_test.txt -ErrorAction SilentlyContinue; Remove-Item C:\Temp\test_cve_2009_0556.ppt -ErrorAction SilentlyContinue Expected Telemetry
Process creation event: parent=POWERPNT.EXE, child=cmd.exe with arguments '/c whoami'
Expected Detection
Alert triggered on PowerPoint spawning cmd.exe with output file written to C:\Temp
Simulates an attacker using a PowerPoint macro to execute an encoded PowerShell payload, mimicking obfuscated shellcode delivery via CVE-2009-0556.
Command
powershell -Command "$encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Write-Output CVE-2009-0556-PoC')); Start-Process powerpnt.exe -ArgumentList '/automation'; Start-Sleep 2; Start-Process powershell.exe -ArgumentList "-EncodedCommand $encoded" -Wait" Cleanup
Stop-Process -Name powerpnt -ErrorAction SilentlyContinue Expected Telemetry
Sysmon Event ID 1: Image=powershell.exe, ParentImage=powerpnt.exe, CommandLine contains -EncodedCommand
Expected Detection
Alert triggered on encoded PowerShell command spawned from PowerPoint process
Simulates the file-drop stage of CVE-2009-0556 exploitation where a crafted PowerPoint file lands in a user's temp directory, as would occur via email attachment or web download.
Command
powershell -Command "$content = [System.Text.Encoding]::UTF8.GetBytes('CVE-2009-0556 test file - not a real exploit'); $path = "$env:TEMP\\exploit_test.ppt"; [IO.File]::WriteAllBytes($path, $content); Write-Output \"File written to $path\"; Get-Item $path | Select Name, Length, LastWriteTime" Cleanup
Remove-Item "$env:TEMP\exploit_test.ppt" -ErrorAction SilentlyContinue Expected Telemetry
File creation event: FileName=exploit_test.ppt, FolderPath contains \Temp\
Expected Detection
Alert or hunting query surfaces .ppt file creation in %TEMP% directory, flagged for review