Bug 1980110 (CVE-2021-31615) - CVE-2021-31615 bluetooth: Packet injection may lead to MITM or terminate existing link
Summary: CVE-2021-31615 bluetooth: Packet injection may lead to MITM or terminate exi...
Keywords:
Status: CLOSED NOTABUG
Alias: CVE-2021-31615
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 1977059
TreeView+ depends on / blocked
 
Reported: 2021-07-07 19:31 UTC by Pedro Sampaio
Modified: 2021-07-12 10:16 UTC (History)
45 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2021-07-12 10:14:54 UTC
Embargoed:


Attachments (Terms of Use)

Description Pedro Sampaio 2021-07-07 19:31:23 UTC
Unencrypted Bluetooth Low Energy baseband links in Bluetooth Core Specifications 4.0 through 5.2 may permit an adjacent device to inject a crafted packet during
the receive window of the listening device before the transmitting device initiates its packet transmission to achieve full MITM status without
terminating the link. When applied against devices establishing or using encrypted links, crafted packets may be used to terminate an existing link, but
will not compromise the confidentiality or integrity of the link.

References:

https://hal.laas.fr/hal-03193297v2/document
https://www.bluetooth.com/learn-about-bluetooth/key-attributes/bluetooth-security/injectable/
https://bluetooth.com

Comment 1 Wade Mealing 2021-07-09 03:56:24 UTC
Additional information:

There are a lot of conditions based on this flaw.

The first is 'dual mode' support.

You can check to see if your system has 'dual mode' support with the hciconfig tool as shown below.

# sudo hciconfig hci0 features
hci0:	Type: Primary  Bus: USB
	BD Address: 7C:E9:D3:EA:77:53  ACL MTU: 1021:8  SCO MTU: 64:1
	Features page 0: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
		<3-slot packets> <5-slot packets> <encryption> <slot offset> 
		<timing accuracy> <role switch> <sniff mode> <RSSI> 
		<channel quality> <SCO link> <HV2 packets> <HV3 packets> 
		<u-law log> <A-law log> <CVSD> <paging scheme> <power control> 
		<transparent SCO> <broadcast encrypt> <EDR ACL 2 Mbps> 
		<EDR ACL 3 Mbps> <enhanced iscan> <interlaced iscan> 
		<interlaced pscan> <inquiry with RSSI> <extended SCO> 
		<EV4 packets> <EV5 packets> <AFH cap. slave> 
		<AFH class. slave> <LE support> <3-slot EDR ACL> 
		<5-slot EDR ACL> <sniff subrating> <pause encryption> 
		<AFH cap. master> <AFH class. master> <EDR eSCO 2 Mbps> 
		<EDR eSCO 3 Mbps> <3-slot EDR eSCO> <extended inquiry> 
		<LE and BR/EDR> <simple pairing> <encapsulated PDU> 
		<err. data report> <non-flush flag> <LSTO> <inquiry TX power> 
		<EPC> <extended features> 

The have "<LE and BR/EDR>" means that this has dual mode.

If you have dual mode, and dont use the new "low energy" mode, this can be immedately modified in the /etc/bluetooth/main.conf 

# Restricts all controllers to the specified transport. Default value
# is "dual", i.e. both BR/EDR and LE enabled (when supported by the HW).
# Possible values: "dual", "bredr", "le"
#ControllerMode = dual

Setting this to the "bredr" mode should mitigate the flaw, restarting bluetoothd service should effectively disable bluetooth low energy and require connection between devices to use normal bluetooth.

Comment 2 Wade Mealing 2021-07-09 03:58:12 UTC
Unfortunately, I do not believe that there is a  software or firmware fix that can be implemented at this time.  This is a protocol level flaw.


Note You need to log in before you can comment on or make changes to this bug.