CVE-2015-3093 : Détail

CVE-2015-3093

Overflow
40%V3
Network
2015-05-13
08h00 +00:00
2017-09-16
07h57 +00:00
Notifications pour un CVE
Restez informé de toutes modifications pour un CVE spécifique.
Gestion des notifications

Descriptions du CVE

Adobe Flash Player before 13.0.0.289 and 14.x through 17.x before 17.0.0.188 on Windows and OS X and before 11.2.202.460 on Linux, Adobe AIR before 17.0.0.172, Adobe AIR SDK before 17.0.0.172, and Adobe AIR SDK & Compiler before 17.0.0.172 allow attackers to execute arbitrary code or cause a denial of service (memory corruption) via unspecified vectors, a different vulnerability than CVE-2015-3078, CVE-2015-3089, and CVE-2015-3090.

Informations du CVE

Faiblesses connexes

CWE-ID Nom de la faiblesse Source
CWE-119 Improper Restriction of Operations within the Bounds of a Memory Buffer
The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.

Métriques

Métriques Score Gravité CVSS Vecteur Source
V2 10 AV:N/AC:L/Au:N/C:C/I:C/A:C nvd@nist.gov

EPSS

EPSS est un modèle de notation qui prédit la probabilité qu'une vulnérabilité soit exploitée.

Score EPSS

Le modèle EPSS produit un score de probabilité compris entre 0 et 1 (0 et 100 %). Plus la note est élevée, plus la probabilité qu'une vulnérabilité soit exploitée est grande.

Percentile EPSS

Le percentile est utilisé pour classer les CVE en fonction de leur score EPSS. Par exemple, une CVE dans le 95e percentile selon son score EPSS est plus susceptible d'être exploitée que 95 % des autres CVE. Ainsi, le percentile sert à comparer le score EPSS d'une CVE par rapport à d'autres CVE.

Informations sur l'Exploit

Exploit Database EDB-ID : 37846

Date de publication : 2015-08-18 22h00 +00:00
Auteur : bilou
EDB Vérifié : Yes

Source: https://code.google.com/p/google-security-research/issues/detail?id=326&can=1&q=label%3AProduct-Flash%20modified-after%3A2015%2F8%2F17&sort=id [Tracking for: https://code.google.com/p/chromium/issues/detail?id=475018] Credit is to bilou, working with the Chromium Vulnerability Rewards Program. --- VULNERABILITY DETAILS Issues in DefineBitsLossless and DefineBitsLossless2 leads to using uninitialized memory while rendering a picture. This is caused by the returned value of a zlib function not properly checked. VERSION Chrome version 41.0.2272.101, Flash 17.0.0.134 (the code below comes from flash player standalone exe 17.0.0.134) Operating System: Win 7 x64 SP1 REPRODUCTION CASE Compile the provided poc with flex sdk: mxmlc -static-link-runtime-shared-libraries=true -compress=false -target-player 15.0 -swf-version 25 XBitmapGif.as And change the bytes in the DefineBitsLossless2 tag, at offset 0x228: 14 00 14 00 78 to 14 00 14 00 41 To get a DefineBitsLossless tag, change the byte at offset 0x220: 09 47 00 00 00 to 05 47 00 00 00 Load the provided pocs and see the pointers partially disclosed. When handling such tags, Flash first allocates a buffer according to the picture's width and height but does not initialize it. If the compressed data stream is corrupted, the zlib function just returns an invalid token and Flash leaves the uninitialized buffer as is. Look at sub_54732C: .text:0054746C loc_54746C: .text:0054746C mov ecx, [esi] .text:0054746E push 0 .text:00547470 push 0 .text:00547472 push eax .text:00547473 push [ebp+var_10] .text:00547476 push [ebp+var_14] .text:00547479 push [ebp+var_C] .text:0054747C call sub_545459 ; allocate a buffer of 4 * 14h * 14h = 640h .text:00547481 cmp [ebp+var_1], 0 .text:00547485 mov ecx, [esi] .text:00547487 setnz al .text:0054748A mov [ecx+58h], al ... .text:005474DE loc_5474DE: .text:005474DE lea eax, [ebp+var_50] .text:005474E1 push 0 .text:005474E3 push eax .text:005474E4 call xinflate ; inflate the buffer, but there's no error check? .text:005474E9 pop ecx ; thus we can return 0xFFFFFFFD in eax with a corrupt stream .text:005474EA pop ecx .text:005474EB cmp eax, 1 .text:005474EE jz short loc_5474FB .text:005474F0 test eax, eax .text:005474F2 jnz short loc_54753A ; which will skip the buffer initialization Reading this data back is not straightforward. For a DefineBitsLossless tag, we can read values like 0xFFXXYYZZ. For a DefineBitsLossless2 tag an operation is performed on the pixels so we can only read f(pixel). That function is handled by sub_4CD3B0 and uses a hardcoded table. By conbining both the DefineBitsLossless and DefineBitsLossless2 tags I'm quite convinced we can guess a full pointer. --- Proof of Concept: https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/37846.zip

Products Mentioned

Configuraton 0

Adobe>>Air >> Version To (including) 17.0.0.144

Adobe>>Air_sdk >> Version To (including) 17.0.0.144

Adobe>>Air_sdk_\&_compiler >> Version To (including) 17.0.0.144

Configuraton 0

Adobe>>Flash_player >> Version To (including) 11.2.202.475

Linux>>Linux_kernel >> Version -

Configuraton 0

Adobe>>Flash_player >> Version To (including) 13.0.0.264

Adobe>>Flash_player >> Version 14.0.0.125

Adobe>>Flash_player >> Version 14.0.0.145

Adobe>>Flash_player >> Version 14.0.0.176

Adobe>>Flash_player >> Version 14.0.0.179

Adobe>>Flash_player >> Version 15.0.0.152

Adobe>>Flash_player >> Version 15.0.0.167

Adobe>>Flash_player >> Version 15.0.0.189

Adobe>>Flash_player >> Version 15.0.0.223

Adobe>>Flash_player >> Version 15.0.0.239

Adobe>>Flash_player >> Version 15.0.0.246

Adobe>>Flash_player >> Version 16.0.0.235

Adobe>>Flash_player >> Version 16.0.0.257

Adobe>>Flash_player >> Version 16.0.0.287

Adobe>>Flash_player >> Version 16.0.0.296

Adobe>>Flash_player >> Version 17.0.0.134

Adobe>>Flash_player >> Version 17.0.0.169

Apple>>Mac_os_x >> Version -

Microsoft>>Windows >> Version -

Références

http://www.securitytracker.com/id/1032285
Tags : vdb-entry, x_refsource_SECTRACK
https://security.gentoo.org/glsa/201505-02
Tags : vendor-advisory, x_refsource_GENTOO
https://www.exploit-db.com/exploits/37846/
Tags : exploit, x_refsource_EXPLOIT-DB
http://rhn.redhat.com/errata/RHSA-2015-1005.html
Tags : vendor-advisory, x_refsource_REDHAT
http://www.securityfocus.com/bid/74605
Tags : vdb-entry, x_refsource_BID