Patching
Update Adobe Acrobat and Reader to the latest versions. This vulnerability is addressed in APSB20-48.
The vulnerability resides within the EScript.api module, specifically in how Adobe Reader handles embedded JavaScript via its internal ESObject cache.
The core of the issue is a discrepancy in how the application handles string encoding when managing the data ESObject cache.
data ESObject is constructed, the cache key is created using the original encoding (either ANSI or Unicode) found in the PDF document.AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:HThe exploitation of CVE-2020-9715 is achieved through a precise sequence of JavaScript operations embedded within a malicious PDF.
Data ESObject with an ANSI-encoded name, forcing Adobe Reader to store a pointer in the EScript.api cache.null (e.g., this.dataObjects[0] = null), marking the object for deletion.app.setTimeOut) to wait for the JavaScript engine’s Garbage Collector to reclaim the memory of the nullified object.toString() or another method on the original object. Because the cache eviction failed (due to the ANSI/Unicode mismatch), the system finds the stale pointer in the cache and attempts to use it.function triggerUAF() { // Accesses the stale pointer in the object cache this.dataObjects[0].toString();}
function poc() { // 1. Allocate Data ESObject this.dataObjects[0].toString(); // 2. Nullify reference this.dataObjects[0] = null; // 3. Trigger UAF after GC occurs app.setTimeOut("triggerUAF()", 1000);}poc();When analyzing a system suspected of being compromised via CVE-2020-9715, analysts should look for the following traces.
Acrobat.exe or AcroRd32.exe spawning unexpected child processes such as cmd.exe, powershell.exe, wscript.exe, or mshta.exe.0xCC breakpoints) if a memory dump is available.dataObjects collections and app.setTimeOut calls within embedded JavaScript.Acrobat.exe and check for concurrent execution of shells immediately following the opening of a PDF.To detect post-exploitation activity, monitor for suspicious child processes.
Logic:
C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe OR C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.execmd.exe, powershell.exe, sh.exe, certutil.exeindex=endpointparent_process IN ("Acrobat.exe", "AcroRd32.exe")process IN ("cmd.exe", "powershell.exe", "sh.exe", "whoami.exe")| table _time, host, user, pid, process, parent_process, command_linePatching
Update Adobe Acrobat and Reader to the latest versions. This vulnerability is addressed in APSB20-48.
Sandbox Hardening
Ensure “Protected Mode” (Sandbox) is enabled in Adobe Reader settings to limit the impact of RCE.
JS Disabling
Disable JavaScript in Adobe Reader for high-risk environments if the functionality is not business-critical.