Bug 218880

Summary: HCI_EVT Packet 'Flush Occurred' Misalignment
Product: Drivers Reporter: Yuxuan Hu (yuxuanhu)
Component: BluetoothAssignee: linux-bluetooth (linux-bluetooth)
Status: NEW ---    
Severity: normal CC: baijiaju1990, johan.hedberg, linux-bluetooth, luiz.dentz, marcel, yuxuanhu
Priority: P3    
Hardware: All   
OS: Linux   
Kernel Version: 6.7.9 Subsystem:
Regression: No Bisected commit-id:
Attachments: Kernel Log including HCI packets
TShark pcap file

Description Yuxuan Hu 2024-05-24 08:43:44 UTC
Hi All,

Our fuzzing tool found a possible bug when testing Bluetooth RFCOMM connection:

(1) A 'Flush Occurred' HCI_EVT packet with incorrect 'parameter_total_length' field and parameters was maliciously sent to the host (hexadecimal content: '11 3D C4 02 62 D1').

(2) Because 'hci_ev_table'(/net/bluetooth/hci_event.c: 7514) does not include 'Flush Occurred' event, the function hci_event_func(/net/bluetooth/hci_event.c: 7644) doesn't check the 'parameter_total_length' field of this packet.

(3) When the controller transmits additional HCI packets to the host, these packets are concatenated to the previously mentioned Flush Occurred packet. This results in the packets being disregarded by the host.

Attachment 1 [details] is Kernel Log, which includes the printed HCI packet interactions between the host and controller. All HCI packets following the line mentioned below are ignored by the host:

'''
[ 1555.520646] <- [EVT] 11 3D C4 02 62 D1
'''

Attachment 2 [details] contains packet captures from tshark.

It remains unclear whether this behavior constitutes a bug or a feature. We apologize if this inquiry causes any offense.
Thank you very much for taking the time to read.

Best Regard,
Yuxuan Hu.
Comment 1 Yuxuan Hu 2024-05-24 08:48:04 UTC
Created attachment 306328 [details]
Kernel Log including HCI packets
Comment 2 Yuxuan Hu 2024-05-24 08:48:31 UTC
Created attachment 306329 [details]
TShark pcap file