CVE-2026-98736 in Linuxinfo

Zusammenfassung

von VulDB • 18.10.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

Bluetooth: hci_conn: Sperren des Parent-Zugriffs während der erweiterten SCO-Einrichtung (enhanced SCO setup)

hci_enhanced_setup_sync() wird im Request-Workqueue ausgeführt, ohne dass das von seinem Aufrufer gehaltene hci_dev_lock gesperrt ist, wenn die Einrichtung in die Warteschlange gestellt wurde. Seine CVSD-Fähigkeitsprüfung und find_next_esco_param() dereferenzieren conn->parent, während der Receive-Workqueue diesen Parent entkoppeln und freigeben kann.

Die folgende Interleaving-Situation (Verschachtelung) kann zu einem Use-After-Free führen:

hci_enhanced_setup_sync() hci_disconn_complete_evt() load conn->parent hci_dev_lock() hci_conn_del(ACL parent) unlink SCO child drop link's parent reference clear child->parent release ACL parent bt_link_release() kfree(parent) hci_dev_unlock() read parent->features[0][3]

Die Referenz, die für das in der Warteschlange befindliche SCO-Kind gehalten wird, hält seinen ACL-Parent nach dem Entkoppeln nicht am Leben. Das Commit 42de40abe25d („Bluetooth: hci_conn: fix the SCO setup context lifetime“) schützt das im queued Context gespeicherte Kind, lässt jedoch diese Parent-Zugriffe ungeschützt.

Mit einer diagnostischen Verzögerung von 40 ms nach dem Laden von conn->parent zeigt ein instrumentierter Kernel basierend auf fd179f8a05be (der bereits 42de40abe25d enthält):

BUG: KASAN: slab-use-after-free in hci_enhanced_setup_sync+0xda5/0xdf0 Read of size 1 at addr ffff888102204047 by task kworker/u17:0/93 Call Trace: hci_enhanced_setup_sync+0xda5/0xdf0 hci_cmd_sync_work+0x13c/0x290 process_one_work+0x6b4/0x10e0

Allocated by task 92: __hci_conn_add+0x304/0x1df0 hci_connect_acl+0x349/0x3e0 hci_connect_sco+0x3b/0x9a0 sco_sock_connect+0x475/0xca0

Freed by task 94: kfree+0x121/0x3c0 bt_link_release+0x79/0xa0 device_release+0xc8/0x240 kobject_put+0x1d/0x280 hci_conn_del+0x524/0xe30 hci_disconn_complete_evt+0x403/0x8c0 hci_event_packet+0x71b/0xb20 hci_rx_work+0x293/0x730

Die zugegriffene Adresse befindet sich 71 Bytes in den freigegebenen ACL-Parent hinein, an seinem features[0][3]-Byte; das in der Warteschlange befindliche SCO-Kind ist ein anderes Objekt. Die Diagnose bewahrt den geladenen Parent über die Verzögerung hinweg auf, entspricht dem unveränderten kompilierten Fähigkeitscheck und ändert nicht die Parent-Referenzen oder den Teardown-Pfad.

Halten Sie hci_dev_lock() während des Codec-Wechsels, einschließlich jedes Aufrufs von find_next_esco_param(), und geben Sie es bei allen Auswahlfreigefehlern frei. Halten Sie configure_datapath_sync() außerhalb der kritischen Sektion, da sie auf HCI-Ereignisse wartet. Bewahren Sie die Parameterauswahl und vorhandene Rückgabewerte bei.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Zuständig

Linux

Reservieren

25.09.2026

Veröffentlichung

18.10.2026

Moderieren

akzeptiert

Eintrag

VDB-421931

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Want to know what is going to be exploited?

We predict KEV entries!