CVE-2026-98455

Orta

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: Bluetooth: RFCOMM: RFCOMM_CONNINFO-da dlc->session-ın NULL dereference xətasının düzəldilməsi RFCOMM_CONNINFO getsockopt idarəçisi, təxirə salınmış quraşdırma (deferred setup) aktiv olduğu müddətcə qoşulmamış soketi qəbul edir: if (sk->sk_state != BT_CONNECTED && !rfcomm_pi(sk)->dlc->defer_setup) { err = -ENOTCONN; break; } l2cap_sk = rfcomm_pi(sk)->dlc->session->sock->sk; dlc->defer_setup dəyişəni, BT_DEFER_SETUP aktiv olan dinləyici soketdə gələn bağlantı üçün rfcomm_connect_ind() alt soket yaratdıqda rfcomm_sock_init() funksiyasında təyin edilir və daha sonra heç vaxt sıfırlanmır. Lakin sessiya onun altında yox ola bilər. rfcomm_recv_disc() funksiyası dlc vəziyyətini ləğv etməzdən əvvəl məcburi şəkildə təyin edir: d->state = BT_CLOSED; __rfcomm_dlc_close(d, err); __rfcomm_dlc_close() funksiyasındakı RFCOMM_DEFER_SETUP erkən geri dönüşü yalnız BT_CONNECT, BT_CONFIG, BT_OPEN və BT_CONNECT2 vəziyyətlərini əhatə edir, buna görə də vəziyyət artıq BT_CLOSED olduqda həmin switch uyğun gəlmir və funksiya rfcomm_dlc_unlink()-ə keçir ki, bu da d->defer_setup 1 olaraq qalarkən d->session = NULL təyin edir. Buna görə də, həmin nöqtədən sonra qəbul edilmiş soket üzərində çağırılan getsockopt(SOL_RFCOMM, RFCOMM_CONNINFO), -ENOTCONN yolunu ötürür — çünki sk->sk_state BT_CLOSED olsa da, dlc->defer_setup hələ də təyin edilib — və NULL sessiyanın dereference-ını yerinə yetirir. Heç bir yarış şərtinin (race condition) olması tələb olunmur: DISC emal edildikdən sonra dereference qeydsiz şəkildə baş verir. Bu problem /dev/vhci vasitəsilə emulyasiya edilmiş BR/EDR tərəfdaşı ilə QEMU altında KASAN nüvəsində təkrar istehsal edilmişdir: tərəfdaş ACL bağlantısını qurur, RFCOMM PSM üzərində L2CAP açır, sessiya başladır və BT_DEFER_SETUP ilə bağlanmış kanal üçün SABM göndərir və soket qəbul edildikdən sonra həmin dlci üçün DISC göndərir. Sonra qəbul edilmiş soket üzərində getsockopt(SOL_RFCOMM, RFCOMM_CONNINFO) çağırışı aşağıdakına səbəb olur: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000002: 0000 [#1] SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017] CPU: 1 UID: 0 PID: 150 Comm: init Tainted: G B 7.3.0-rc3-g5dd1818b15d9 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) RIP: 0010:rfcomm_sock_getsockopt+0x529/0x780 Call Trace: <TASK> do_sock_getsockopt+0x3ad/0x7d0 __sys_getsockopt+0x10e/0x1b0 __x64_sys_getsockopt+0xc2/0x160 do_syscall_64+0xda/0x4b0 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> 0x10, struct rfcomm_session-da sock elementinin ofsetidir; rfcomm_sock_getsockopt_old() funksiyası rfcomm_sock_getsockopt() daxilinə inlined edilmişdir. 43a556b2fd43 ("Bluetooth: RFCOMM: take rfcomm_mutex for the deferred setup accept") commit-i rfcomm_dlc_accept() funksiyasındakı eyni "uzaq DISC, təxirə salınmış quraşdırma hələ də qeyd olunduğu halda sessiyanı təmizləyir" problemini düzəltmişdir; bu isə həmin problemin getsockopt yolunda qalan son nümunəsidir. Təxirə salınmış quraşdırma burada soketi yalnız BT_CONNECT2 vəziyyətinə çatdıqda istifadə edilə bilən edir, ona görə də istisna həmin vəziyyətlə məhdudlaşdırılır və izləməzdən əvvəl sessiyanın həqiqətən mövcud olub-olmadığı yoxlanılır.

CiddilikOrta
CVSS4.7
İstismar ehtimalı—
MəhsulMicrosoft Azl3 Kernel
Dərc18 okt 2026
İlk görülmə18 okt 2026

Necə düzəltmək olar

Mənbələrdə bu zəiflik üçün düzəldilmiş versiya və ya yamaq keçidi yoxdur.

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
microsoft azl3_kernel_6.6.157.1-1Aralıq göstərilməyib—

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.

CVE-2026-98455 · Microsoft Azl3 Kernel · Dark Radar