Odebrany

CVE-2026-98455

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

Bluetooth: RFCOMM: napraw wyłuskiwanie NULL dla dlc->session w RFCOMM_CONNINFO

Procedura obsługi getsockopt RFCOMM_CONNINFO akceptuje gniazdo, które nie jest
podłączony, jeśli włączona jest konfiguracja odroczona:

if (sk->sk_state != BT_CONNECTED &&
!rfcomm_pi(sk)->dlc->defer_setup) {
błąd = -ENOTCONN;
przerwa;
}
l2cap_sk = rfcomm_pi(sk)->dlc->sesja->sock->sk;

dlc->defer_setup jest ustawione w rfcomm_sock_init(), gdy rfcomm_connect_ind()
tworzy gniazdo podrzędne dla połączenia przychodzącego na gnieździe nasłuchującym
który ma włączoną funkcję BT_DEFER_SETUP. Nigdy później nie jest to sprzątane. The
sesja może jednak zniknąć pod nią.

rfcomm_recv_disc() wymusza stan dlc przed jego zniszczeniem:

d->stan = BT_CLOSED;
__rfcomm_dlc_close(d, błąd);

Wcześniejszy powrót RFCOMM_DEFER_SETUP w __rfcomm_dlc_close() obejmuje tylko
BT_CONNECT, BT_CONFIG, BT_OPEN i BT_CONNECT2, czyli ze stanem
już BT_CLOSED ten przełącznik nie pasuje i funkcja spada
aż do rfcomm_dlc_unlink(), która ustawia d->session = NULL, while
d->defer_setup pozostaje 1.

Getockopt(SOL_RFCOMM, RFCOMM_CONNINFO) na zaakceptowanym gnieździe po
dlatego ten punkt pomija ścieżkę -ENOTCONN -- sk->sk_state is
BT_CLOSED, ale dlc->defer_setup jest nadal ustawiony - i dereferuje
Sesja NULL. Nie jest potrzebny żaden wyścig: po przetworzeniu DISC,
dereferencja jest bezwarunkowa.

Reprodukowane na jądrze KASAN pod QEMU z emulacją partnera BR/EDR
/dev/vhci: peer wywołuje łącze ACL, otwiera L2CAP na RFCOMM
PSM rozpoczyna sesję i wysyła SABM dla powiązanego kanału
BT_DEFER_SETUP i wysyła DISC dla tego dlci po otwarciu gniazda
zaakceptowane. getsockopt(SOL_RFCOMM, RFCOMM_CONNINFO) w przypadku zaakceptowania
gniazdo następnie uderza:

Ups: ogólny błąd ochrony, prawdopodobnie dla adresu niekanonicznego
0xdffffc0000000002: 0000 [#1] SMP KASAN PTI
KASAN: null-ptr-deref w zakresie [0x0000000000000010-0x0000000000000017]
Procesor: 1 UID: 0 PID: 150 Comm: init Tainted: G B 7.3.0-rc3-g5dd1818b15d9
Nazwa sprzętu: QEMU Standard PC (i440FX + PIIX, 1996)
RIP: 0010:rfcomm_sock_getsockopt+0x529/0x780
Zadzwoń do śledzenia:
<ZADANIE>
do_sock_getsockopt+0x3ad/0x7d0
__sys_getsockopt+0x10e/0x1b0
__x64_sys_getsockopt+0xc2/0x160
do_syscall_64+0xda/0x4b0
wpis_SYSCALL_64_after_hwframe+0x77/0x7f
</ZADANIE>

0x10 to przesunięcie skarpety w strukturze rfcomm_session;
Funkcja rfcomm_sock_getsockopt_old() jest wbudowana w funkcję rfcomm_sock_getsockopt().

Zatwierdź 43a556b2fd43 („Bluetooth: RFCOMM: weź rfcomm_mutex dla
odroczona akceptacja konfiguracji”) naprawiono ten sam błąd „zdalny dysk czyści sesję
podczas gdy odroczona konfiguracja jest nadal oflagowana” problem w rfcomm_dlc_accept();
jest to pozostała jego instancja w ścieżce getsockopt.

Odroczona konfiguracja pozostawia gniazdo nadające się do użytku dopiero po jego osiągnięciu
BT_CONNECT2, więc ogranicz wyjątek do tego stanu i sprawdź, czy a
sesja jest faktycznie obecna przed jej wykonaniem.

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org