Detect Adobe Acrobat Use-After-Free Exploitation (CVE-2020-9715) in IBM QRadar
Detects exploitation of CVE-2020-9715, a use-after-free vulnerability in Adobe Acrobat that allows arbitrary code execution. This vulnerability is listed in CISA's Known Exploited Vulnerabilities catalog and has been actively exploited in the wild. Attackers typically deliver malicious PDF documents that trigger memory corruption upon rendering, leading to code execution in the context of the Acrobat process.
MITRE ATT&CK
QRadar Detection Query
SELECT DATEFORMAT(devicetime, 'yyyy-MM-dd HH:mm:ss') AS EventTime, sourceip, username, "Process Name", "Parent Process Name", "Command"
FROM events
WHERE LOGSOURCETYPENAME(devicetype) ILIKE '%sysmon%'
AND ("Parent Process Name" ILIKE '%acrobat%' OR "Parent Process Name" ILIKE '%acrord32%' OR "Parent Process Name" ILIKE '%acrocef%')
AND ("Process Name" ILIKE '%cmd.exe%' OR "Process Name" ILIKE '%powershell.exe%' OR "Process Name" ILIKE '%wscript.exe%' OR "Process Name" ILIKE '%mshta.exe%' OR "Process Name" ILIKE '%rundll32.exe%' OR "Process Name" ILIKE '%certutil.exe%')
LAST 7 DAYS
ORDER BY devicetime DESC QRadar AQL query detecting Adobe Acrobat spawning high-risk child processes via Sysmon log source, indicating potential CVE-2020-9715 exploitation.
Data Sources
Required Tables
False Positives & Tuning
- Business automation workflows using Acrobat to generate and process documents
- IT managed Acrobat deployments with scripted post-processing
- Sandboxed environments where Acrobat is deliberately tested
Other platforms for CVE-2020-9715
Testing Methodology
Validate this detection against 4 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 1Simulate Acrobat UAF — Malicious PDF Spawning cmd.exe
Expected signal: Sysmon Event ID 1 showing cmd.exe with ParentImage path containing AcroRd32; DeviceProcessEvents entry in MDE with InitiatingProcessFileName = AcroRd32_sim.exe and FileName = cmd.exe
- Test 2Simulate Acrobat UAF — PowerShell Payload Execution
Expected signal: Sysmon Event ID 1 for powershell.exe with suspicious parent; DeviceProcessEvents capturing PowerShell command-line with -ExecutionPolicy Bypass flag
- Test 3Simulate Acrobat UAF — Executable Drop to Temp Directory
Expected signal: Sysmon Event ID 11 (FileCreate) for executable written to %TEMP%; Sysmon Event ID 1 for process launch from %TEMP% path; MDE DeviceFileEvents and DeviceProcessEvents entries
- Test 4Simulate Acrobat UAF — Outbound C2 Beacon Simulation
Expected signal: Sysmon Event ID 3 (NetworkConnect) for outbound connection to non-RFC1918 IP on non-standard port; DeviceNetworkEvents in MDE capturing the destination IP and port
Response Playbook
Triage
- Confirm the process tree: verify that the suspicious child process (cmd.exe, powershell.exe, etc.) is directly parented by an Acrobat process and note the full command-line arguments of both parent and child.
- Identify the PDF file that triggered the Acrobat session — retrieve it from browser download history, email attachments, or recent file activity on the endpoint and quarantine it for analysis.
- Determine the user account involved, check for privilege escalation indicators, and assess whether the spawned process established network connections or dropped additional payloads to disk.
- Review the endpoint's patch level for Adobe Acrobat: confirm whether the affected version aligns with the known vulnerable build range for CVE-2020-9715 and check if apsb20-48 patches have been applied.
Containment
- Isolate the affected endpoint from the network immediately using EDR host isolation or network ACLs to prevent lateral movement or C2 beacon establishment from the potentially compromised Acrobat session.
- Kill all suspicious child processes spawned by Acrobat and terminate the Acrobat process itself; preserve memory dumps of both before termination if forensic tooling permits.
- Block the source PDF file hash at the email gateway, web proxy, and endpoint AV/EDR layers to prevent further delivery to other users.
Evidence Collection
- Collect a full memory dump of the Acrobat process and any spawned child processes prior to termination; use tools such as ProcDump or EDR memory acquisition to capture heap state for use-after-free analysis.
- Preserve the triggering PDF file intact (do not open outside a sandbox), capture prefetch files, browser download records, MFT entries, and Sysmon/EDR telemetry covering the 30-minute window around the alert.
- Export relevant Windows Event Logs (Security, System, Application, Sysmon) and EDR process telemetry for the affected host covering at least 24 hours before and after the incident.
Escalation Criteria
- !Escalate immediately if the child process established outbound network connections, particularly to non-corporate external IPs, indicating potential C2 activity post-exploitation.
- !Escalate if additional hosts exhibit the same Acrobat child-process pattern within the same timeframe, suggesting a phishing campaign or shared malicious PDF delivery to multiple users.
- !Escalate if credential dumping tools (mimikatz, lsass access), persistence mechanisms (registry run keys, scheduled tasks), or lateral movement indicators are observed following the initial Acrobat alert.
Investigation Guide
Related Techniques
Forensic Artifacts
- >
Suspicious PDF file in user's Downloads directory, Temp folder, or browser cache — hash and submit to sandbox - >
Acrobat process memory dump containing corrupted heap structures indicative of use-after-free condition - >
Windows Prefetch entries for Acrobat and any spawned child processes with close timestamps - >
Sysmon Event ID 1 (Process Create), Event ID 3 (Network Connection), and Event ID 11 (File Create) entries from the Acrobat process tree - >
Registry modifications or scheduled tasks created by child processes post-exploitation for persistence
Tuning Guidance
Reduce false positives by filtering on known-good Acrobat child processes such as AcroNGL.exe, AcroBroker.exe, and legitimate Adobe Update processes. Scope alerts to exclude endpoints where Acrobat is used in automated document processing pipelines by creating exception lists based on process parent chain depth and command-line argument patterns. Increase confidence by correlating child process spawning with concurrent network connections from the same Acrobat PID. Consider tuning severity downward for endpoints confirmed to be running patched Acrobat versions (post-apsb20-48).
Hunting Queries
Hunt for Adobe Acrobat writing executable or script files to user-writable temp directories, a strong post-exploitation indicator following use-after-free code execution.
DeviceFileEvents
| where TimeGenerated > ago(30d)
| where InitiatingProcessFileName in~ ("AcroRd32.exe", "Acrobat.exe", "AcroCEF.exe")
| where FolderPath has_any ("\\Temp\\", "\\AppData\\Local\\Temp\\", "\\ProgramData\\")
| where FileName endswith ".exe" or FileName endswith ".dll" or FileName endswith ".ps1" or FileName endswith ".bat"
| project TimeGenerated, DeviceName, AccountName, InitiatingProcessFileName, FileName, FolderPath, SHA256
| order by TimeGenerated desc index=windows sourcetype=XmlWinEventLog:Microsoft-Windows-Sysmon/Operational EventCode=11
| eval Image=lower(Image), TargetFilename=lower(TargetFilename)
| where (like(Image, "%acrobat%") OR like(Image, "%acrord32%"))
AND (like(TargetFilename, "%.exe") OR like(TargetFilename, "%.dll") OR like(TargetFilename, "%.ps1") OR like(TargetFilename, "%.bat"))
AND (like(TargetFilename, "%temp%") OR like(TargetFilename, "%appdata%") OR like(TargetFilename, "%programdata%"))
| table _time, host, User, Image, TargetFilename
| sort -_time Hunt for Adobe Acrobat making unusual outbound network connections on non-standard ports to external IPs, indicative of C2 beacon activity following exploitation.
DeviceNetworkEvents
| where TimeGenerated > ago(30d)
| where InitiatingProcessFileName in~ ("AcroRd32.exe", "Acrobat.exe", "AcroCEF.exe")
| where RemoteIPType != "Private"
| where RemotePort !in (80, 443)
| project TimeGenerated, DeviceName, AccountName, InitiatingProcessFileName, RemoteIP, RemotePort, RemoteUrl
| order by TimeGenerated desc index=windows sourcetype=XmlWinEventLog:Microsoft-Windows-Sysmon/Operational EventCode=3
| eval Image=lower(Image)
| where (like(Image, "%acrobat%") OR like(Image, "%acrord32%"))
AND NOT (DestinationPort=80 OR DestinationPort=443)
AND NOT (like(DestinationIp, "10.%") OR like(DestinationIp, "192.168.%") OR like(DestinationIp, "172.16.%"))
| table _time, host, User, Image, DestinationIp, DestinationPort
| sort -_time Atomic Red Team Tests
Simulates the post-exploitation behavior of CVE-2020-9715 by launching cmd.exe as a child of a renamed Acrobat process to trigger process-lineage detections. Lab use only.
Command
Copy-Item "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" "$env:TEMP\AcroRd32_sim.exe"; Start-Process "$env:TEMP\AcroRd32_sim.exe" -ArgumentList '/A "page=1" NUL'; Start-Sleep 2; Start-Process cmd.exe -ArgumentList '/c whoami > $env:TEMP\acro_uaf_test.txt' Cleanup
Remove-Item "$env:TEMP\AcroRd32_sim.exe" -Force -ErrorAction SilentlyContinue; Remove-Item "$env:TEMP\acro_uaf_test.txt" -Force -ErrorAction SilentlyContinue Expected Telemetry
Sysmon Event ID 1 showing cmd.exe with ParentImage path containing AcroRd32; DeviceProcessEvents entry in MDE with InitiatingProcessFileName = AcroRd32_sim.exe and FileName = cmd.exe
Expected Detection
Alert fires on KQL/SPL child-process detection rules; EDR behavioral rule for Acrobat spawning cmd.exe triggers within 60 seconds
Simulates attacker use of PowerShell as a post-exploitation payload after gaining code execution through CVE-2020-9715, with Acrobat as the parent process. Lab use only.
Command
Start-Process powershell.exe -ArgumentList '-NoProfile -ExecutionPolicy Bypass -Command "Write-Output exploitation-simulated | Out-File $env:TEMP\acro_ps_test.txt"' -Wait; $proc = Get-Process powershell | Select-Object -Last 1; Write-Output "Spawned PID: $proc.Id" Cleanup
Remove-Item "$env:TEMP\acro_ps_test.txt" -Force -ErrorAction SilentlyContinue Expected Telemetry
Sysmon Event ID 1 for powershell.exe with suspicious parent; DeviceProcessEvents capturing PowerShell command-line with -ExecutionPolicy Bypass flag
Expected Detection
Detection rule triggers on Acrobat-lineage PowerShell spawn; AMSI telemetry may also generate additional signal on the bypass flag
Simulates post-exploitation file drop behavior where an attacker writes a payload executable to a user-writable temp directory after gaining code execution via CVE-2020-9715. Lab use only.
Command
Copy-Item "C:\Windows\System32\calc.exe" "$env:TEMP\svchost32.exe"; Start-Process "$env:TEMP\svchost32.exe" Cleanup
Stop-Process -Name svchost32 -Force -ErrorAction SilentlyContinue; Remove-Item "$env:TEMP\svchost32.exe" -Force -ErrorAction SilentlyContinue Expected Telemetry
Sysmon Event ID 11 (FileCreate) for executable written to %TEMP%; Sysmon Event ID 1 for process launch from %TEMP% path; MDE DeviceFileEvents and DeviceProcessEvents entries
Expected Detection
Hunting query for Acrobat writing executables to temp directories fires; endpoint behavioral rule for process execution from %TEMP% may also alert
Simulates network callback behavior following CVE-2020-9715 exploitation where attacker shellcode initiates C2 communication. Triggers network-based detection hunts. Lab use only — use isolated test network.
Command
Invoke-WebRequest -Uri 'http://198.51.100.1:4444/beacon' -Method GET -TimeoutSec 5 -ErrorAction SilentlyContinue; Write-Output 'Beacon attempt simulated' Cleanup
No persistent changes made; ensure test network isolation after exercise Expected Telemetry
Sysmon Event ID 3 (NetworkConnect) for outbound connection to non-RFC1918 IP on non-standard port; DeviceNetworkEvents in MDE capturing the destination IP and port
Expected Detection
Network hunting query for Acrobat-lineage outbound connections on non-standard ports triggers; NGFW or proxy log entries for the test IP may appear