cbcvebase.
CVE-2015-3104
published 2015-06-10

CVE-2015-3104: Integer overflow in Adobe Flash Player before 13.0.0.292 and 14.x through 18.x before 18.0.0.160 on Windows and OS X and before 11.2.202.466 on Linux, Adobe…

PriorityP276critical10CVSS 2.0
AVNACLAuNCCICAC
ITWEXPLOITVulnCheck KEV
Exploited in the wild
EPSS
5.75%
92.2th percentile
Integer overflow in Adobe Flash Player before 13.0.0.292 and 14.x through 18.x before 18.0.0.160 on Windows and OS X and before 11.2.202.466 on Linux, Adobe AIR before 18.0.0.144 on Windows and before 18.0.0.143 on OS X and Android, Adobe AIR SDK before 18.0.0.144 on Windows and before 18.0.0.143 on OS X, and Adobe AIR SDK & Compiler before 18.0.0.144 on Windows and before 18.0.0.143 on OS X allows attackers to execute arbitrary code via unspecified vectors.

Affected

23 ranges
VendorProductVersion rangeFixed in
adobeair<= 17.0.0.144
adobeair<= 17.0.0.172
adobeair_sdk<= 17.0.0.172
adobeair_sdk_compiler<= 17.0.0.172
adobeflash_player<= 11.2.202.460
adobeflash_player<= 13.0.0.289
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player
adobeflash_player

Detection & IOCsextracted from sources · hover to see the quote

command8b0d0004001a8b1d0404001a28d987cc8bec83c52c31c0c3
pathpwnd.exe
bytes
0x00905a4d
bytes
0x6230306e
  • Exploit allocates a large heap spray array (MAX_ARRAY = 81920 ByteArray objects of 0x10 bytes each) and then triggers an integer overflow in Adobe Flash Player's Shader input handling to corrupt a ByteArray length to 0x16000000 or 0xffffffff, enabling arbitrary read/write primitives.
  • Exploit identifies the corrupted ByteArray by scanning for length != 0x10 among even-indexed entries starting at index MAX_ARRAY/2, then uses it to achieve arbitrary memory read/write. Detect Flash processes with anomalously large ByteArray allocations (0x16000000 or 0xffffffff bytes).
  • Exploit writes a ROP chain and payload to fixed heap addresses 0x1a000000, 0x1a100000, 0x1a200000 via heap spray targeting base address 0x16000000. Memory allocations at these fixed addresses in a Flash process are a strong indicator of exploitation.
  • Exploit uses VirtualProtect ROP chain (PUSHAD # RETN gadget) to make shellcode memory executable, then jumps to shellcode via JMP ESP gadget. Monitor Flash Player child processes or memory permission changes (RWX pages) as a detection signal.
  • Exploit drops and executes a Meterpreter payload (pwnd.exe) written to heap address 0x1a100000 and decoded from Base64. Detect Base64-encoded PE files embedded in SWF/Flash content or unexpected executable writes from Flash Player processes.
  • Exploit class is named 'ShaderInputOverflow' and abuses the Flash Shader/ShaderInput API to trigger the integer overflow. SWF files containing ShaderInput manipulation with large channel/width/height values should be treated as suspicious.
  • ·The ROP gadget offsets are hardcoded relative to NPSWF32Base (the Flash Player DLL base address) and are specific to the Flash Player version targeted by this exploit. They will not be valid for other versions.
  • ·The heap spray targets fixed base address 0x16000000 for ByteArray objects and 0x1a000000 for the ROP/payload region; ASLR or differing system memory layouts may cause these addresses to vary, reducing reliability of address-based detection.

CVSS provenance

nvdv2.010.0CRITICALAV:N/AC:L/Au:N/C:C/I:C/A:C
osv10.0CRITICAL
vulncheck10.0CRITICAL
vendor_redhat10.0CRITICAL
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.