CVE-2026-80761 in Linux
Zusammenfassung
von VulDB • 04.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
Bluetooth: ISO: Den sockaddr vor der Rückgabe in getname auf Null setzen
iso_sock_getname() füllt eine struct sockaddr_iso an Ort und Stelle und gibt deren Größe zurück, ohne sie vorher zu löschen. Daher werden Bytes, die nicht beschrieben wurden, aus dem Kernel-Stack in den Userspace kopiert. Die Pfade für getsockname(2) und getpeername(2) laufen beide durch do_getsockname(), das getname() einen uninitialisierten sockaddr_storage im Stack übergibt und bis zu der Anzahl von Bytes zurückkopiert, die getname() angibt; daher muss der Treiber jedes Byte initialisieren, für das er verantwortlich ist.
Zwei Bereiche bleiben nicht initialisiert:
- struct sockaddr_iso hat eine Größe von 10 Bytes, aber es werden nur 9 geschrieben (family, iso_bdaddr, iso_bdaddr_type), wodurch das abschließende Padding-Byte bei jedem Aufruf geleakt wird.
- Für einen Broadcast-Peer (BIS_LINK oder PA_LINK) wächst die zurückgegebene Länge um sizeof(struct sockaddr_iso_bc), aber es werden nur bc_sid, bc_num_bis und bc_bis gefüllt; bc_bdaddr und bc_bdaddr_type, die ersten 7 Bytes dieser Struktur, werden niemals geschrieben.
Ein unprivilegierter Prozess kann einen BTPROTO_ISO-Socket öffnen und den Padding-Leak mit getsockname() ausnutzen; der Broadcast-Leak erfordert eine etablierte BIS/PA-Verbindung. l2cap und rfcomm setzen ihren sockaddr in getname bereits aus demselben Grund auf Null; dies sollte hier ebenfalls geschehen.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.