Advertisement






Android audio_policy app Local DoS

CVE Category Price Severity
CVE-2015-1525 CWE-20 $500 High
Author Risk Exploitation Type Date
Unknown High Local 2015-03-17
CPE
cpe:cpe:/a:android:audio_policy_app
CVSS EPSS EPSSP
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H 0.01662 0.45654

CVSS vector description

Our sensors found this exploit at: http://cxsecurity.com/ascii/WLB-2015030111

Below is a copy:

#############################################################################
#
#   QIHU 360 SOFTWARE CO. LIMITED http://www.360safe.com/
#
#############################################################################
#
# CVE ID:   CVE-2015-1525
# Product:   Android
# Vendor:   Google
# Subject:  A local application could cause a denial-of-service to the
audio_policy app
# Effect:  cause a denial of service
# Author:  Guang Gong
# Date:     March 13th 2015
#
#############################################################################


Introduction
------------


Because of not checking null point in the
AudioPolicyManagerBase::getDeviceConnectionState function in
hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp in Android
below 5.0 allow attackers to cause a denial of service to the audio_policy
app include mediaserver

Affected Android version
----------
all versions below Lollipop 5.0

Patches
-------
Android Bug id 18262893
https://android.googlesource.com/platform/hardware/libhardware_legacy/+/2d2ea50df16fc1a04f1ebf8772c65c56e4f5ecfa


Description
-----------
The vulnerable code is as follows.

http://androidxref.com/4.4.4_r1/xref/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp#251

247AudioSystem::device_connection_state
AudioPolicyManagerBase::getDeviceConnectionState(audio_devices_t device,
248                                               const char
*device_address)
249{
250 AudioSystem::device_connection_state state =
AudioSystem::DEVICE_STATE_UNAVAILABLE;
251 String8 address = String8(device_address);
--------------------------------->
should have checked if device_address is NULL
252 if (audio_is_output_device(device)) {
253     if (device & mAvailableOutputDevices) {
254         if (audio_is_a2dp_device(device) &&
255             (!mHasA2dp || (address != "" && mA2dpDeviceAddress !=
address))) {
256             return state;
257         }


Attack vector
-------------
A local application could cause a denial-of-service to the audio_policy app
include mediaserver

the crash Log is as follows:
85320 --------- beginning of crash
85321 F/libc    (18680): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0
in tid 19486 (Binder_1)
85322 I/        (22751): fuzzing service:media.audio_policy 3:3
85323 I/DEBUG   (  180): *** *** *** *** *** *** *** *** *** *** *** ***
*** *** *** ***
85324 I/DEBUG   (  180): Build fingerprint:
'Android/aosp_hammerhead/hammerhead:4.4.3.43.43.43/AOSP/ggong10171501:userdebug/test-keys'
85325 I/DEBUG   (  180): Revision: '11'
85326 I/DEBUG   (  180): ABI: 'arm'
85327 I/DEBUG   (  180): pid: 18680, tid: 19486, name: Binder_1  >>> /system/bin/mediaserver <<<
85328 I/DEBUG   (  180): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
85329 W/NativeCrashListener(19346): Couldn't find ProcessRecord for pid 18680
85330 I/DEBUG   (  180):     r0 00000000  r1 00000000  r2 00000000  r3 00000000
85331 E/DEBUG   (  180): AM write failure (32 / Broken pipe)
85332 I/DEBUG   (  180):     r4 b4afdb0c  r5 00000000  r6 b4afdb0c  r7 00000002
85333 I/DEBUG   (  180):     r8 b4afdc78  r9 55991c07  sl 000048f8  fp b4afddb0
85334 I/DEBUG   (  180):     ip b6e2cf4c  sp b4afdaf8  lr b6e25651  pc b6ee1dd0  cpsr 600e0030
85335 I/DEBUG   (  180):
85336 I/DEBUG   (  180): backtrace:
85337 I/DEBUG   (  180):     #00 pc 00010dd0  /system/lib/libc.so (strlen+83)
85338 I/DEBUG   (  180):     #01 pc 0000d64d  /system/lib/libutils.so (android::String8::String8(char const*)+8)
85339 I/DEBUG   (  180):     #02 pc 00009011  /system/lib/hw/audio_policy.default.so
(android_audio_legacy::AudioPolicyManagerBase::getDeviceConnectionState(unsigned int, char const*)+12)
85340 I/DEBUG   (  180):     #03 pc 0000dfed  /system/lib/hw/audio_policy.default.so
85341 I/DEBUG   (  180):     #04 pc 00023145  /system/lib/libaudioflinger.so
85342 I/DEBUG   (  180):     #05 pc 00056301  /system/lib/libmedia.so
(android::BnAudioPolicyService::onTransact(unsigned int, android::Parcel
const&, android::Parcel*, unsigned int)+1056)
85343 I/DEBUG   (  180):     #06 pc 000167a5  /system/lib/libbinder.so
(android::BBinder::transact(unsigned int, android::Parcel const&,
android::Parcel*, unsigned int)+60)
85344 I/DEBUG   (  180):     #07 pc 0001aea3  /system/lib/libbinder.so
(android::IPCThreadState::executeCommand(int)+562)
85345 I/DEBUG   (  180):     #08 pc 0001afbf  /system/lib/libbinder.so
(android::IPCThreadState::getAndExecuteCommand()+38)
85346 I/DEBUG   (  180):     #09 pc 0001b001  /system/lib/libbinder.so
(android::IPCThreadState::joinThreadPool(bool)+48)
85347 I/DEBUG   (  180):     #10 pc 0001ee93  /system/lib/libbinder.so
85348 I/DEBUG   (  180):     #11 pc 0000e97d  /system/lib/libutils.so
(android::Thread::_threadLoop(void*)+112)
85349 I/DEBUG   (  180):     #12 pc 0000e505  /system/lib/libutils.so
85350 I/DEBUG   (  180):     #13 pc 00013133  /system/lib/libc.so
(__pthread_start(void*)+30)
85351 I/DEBUG   (  180):     #14 pc 0001120b  /system/lib/libc.so
(__start_thread+6)

Milestones
----------

Date                 Comment                            Sender
05/11/2014     Initial Report of CVE-2015-1525          Qihoo
07/11/2014     Sent the Android Bug ID 18262893         Google
27/01/2015     Sent the CVE-ID                          Google
13/3/2015      fixed in Lollipop 5.1, disclose it       Qihoo



Copyright ©2024 Exploitalert.

This information is provided for TESTING and LEGAL RESEARCH purposes only.
All trademarks used are properties of their respective owners. By visiting this website you agree to Terms of Use and Privacy Policy and Impressum