CVE-2021-47304

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: tcp: icsk_ca_initialized dəyişənini sıfırlamamaq üçün tcp_init_transfer() funksiyası düzəldildi Bu commit, tıxaclığın idarə edilməsi (congestion control) modulları üçün yalançı ikiqat başlatmalara səbəb ola bilən bir xətanı (syzkaller tərəfindən tapılmış) düzəldir. Bu, init funksiyalarında yaddaş ayıran tıxaclığın idarə edilməsi modulları (məsələn, CDG) üçün yaddaş sızmasına və ya digər problemlərə yol aça bilərdi. syzkaller tərəfindən qurulmuş xətalı ssenari təxminən belə idi: (1) TCP soketi yaradılır (2) sendto() vasitəsilə TFO qoşulması başladılır (3) soket TCP_SYN_SENT vəziyyətində olduğu zaman setsockopt(TCP_CONGESTION) çağırılır, bu isə aşağıdakıları çağırır: tcp_set_congestion_control() -> tcp_reinit_congestion_control() -> tcp_init_congestion_control() (4) ACK alınır, bağlantı qurulur, tcp_init_transfer() çağırılır, icsk_ca_initialized=0 təyin edilir (cc->release() çağırılmadan), yenidən tcp_init_congestion_control() çağırılır. Qeyd edək ki, bu ardıcıllıqda tcp_init_congestion_control() arasında heç bir cc->release() çağırışı olmadan iki dəfə çağırılır. Beləliklə, init() funksiyasında yaddaş ayıran CC modulları (məsələn, CDG) üçün yaddaş sızması baş verə bilər. syzkaller aləti CDG-də belə bir sızmanı tetikləyən reproduser tapa bildi. Xəta, 8919a9b31eb4 ("tcp: Only init congestion control if not initialized already") commit-i ilə icsk_ca_initialized tətbiq edildiyi və tcp_init_transfer()-də icsk_ca_initialized 0-a təyin edildiyi zaman ortaya çıxmışdı. Burada prosesin TCP_SYN_SENT vəziyyətində (yəni connect() və ya TFO open sendmsg()-dən sonra) setsockopt(TCP_CONGESTION) çağıra biləcəyi və bununla tcp_init_congestion_control()-i işə salacağı ehtimalı nəzərə alınmamışdı. Məqsəd istifadəçinin artıq açıq şəkildə etdiyi heç bir başlatmanı sıfırlamaq deyildi; sadəcə həmin konkret ardıcıllığın (hansını ki, syzkaller tapa bildi) ehtimalı gözə alınmamışdı.

CiddilikOrta
CVSS5.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc21 may 2024
İlk görülmə21 may 2024

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.10.53, 5.13.5 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.10 ≤ v < 5.10.53, 5.11 ≤ v < 5.13.5, 5.145.10.53, 5.13.5

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.