
CVE-2020-12351
Linux: Heap-basierte Typverwechslung in L2CAP PoC (CVE-2020-12351) für die BLE-Implementierung
Der ursprüngliche PoC konzentriert sich auf das Senden eines schädlichen L2CAP-Pakets über Bluetooth Classic. Allerdings hatte ich die Anforderung, ihn gegen ein Peripheriegerät zu testen, das nur Bluetooth-Low-Energy-(BLE)-Kommunikation unterstützt und den gesamten BlueZ-Stack (sowohl Classic als auch LE) übernommen hat.
L2CAP ist ein gängiges Protokoll, das im Host-Stack angesiedelt ist und sowohl Bluetooth-Classic- als auch BLE-Implementierungen unterstützt.
Linux-Rechner mit BLE-Adapter. Wenn der Rechner nicht über einen eingebauten Adapter verfügt, kannst du einen externen besorgen.
1. Compile
gcc -o CVE-2020-12351 CVE-2020-12351.c -lbluetooth
2. Run
$./CVE-2020-12351 <BLE_Peripheral_MAC_Address> //MAC Format: FF:FF:FF:FF:FF:FF
Packet capture:
hcidump -i <hci0> -w CVE-2020-12351.pcap