CVE-2025-21702

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: pfifo_tail_enqueue: sch->limit == 0 olduqda yeni paket atılsın Gözlənilən davranış: Sceduler-in limitinə çatdıqda, pfifo_tail_enqueue() sceduler-in növbəsindəki bir paketi atacaq və sceduler-in qlen dəyərini bir vahid azaldacaq. Sonra pfifo_tail_enqueue() yeni paketi növbəyə əlavə edəcək və sceduler-in qlen dəyərini bir vahid artıracaq. Sonda pfifo_tail_enqueue() `NET_XMIT_CN` status kodunu qaytaracaq. Anomal davranış: `sch->limit == 0` təyin etdikdə və heç bir paketi olmayan sceduler-də pfifo_tail_enqueue() funksiyasını tetikledikdə, 'paketin atılması' mərhələsi heç bir iş görmür. Bu o deməkdir ki, sceduler-in qlen dəyəri hələ də 0-a bərabərdir. Daha sonra biz yeni paketi növbəyə əlavə etməyə davam edirik və sceduler-in qlen dəyərini bir vahid artırırıq. Xülasə, biz pfifo_tail_enqueue()-dan istifadə edərək qlen dəyərini bir vahid artıra və `NET_XMIT_CN` status kodunu qaytara bilərik. Problem budur: Tutaq ki, iki qdisc-imiz var: Qdisc_A və Qdisc_B. - Qdisc_A-nın tipi valideyn/övlad münasibətini yaratmaq üçün '->graft()' funksiyasına malik olmalıdır. Tutaq ki, Qdisc_A-nın tipi `hfsc`-dir. Bu qdisc-ə paketin əlavə edilməsi `hfsc_enqueue` funksiyasını tetikləyəcək. - Qdisc_B-nin tipi pfifo_head_drop-dur. Bu qdisc-ə paketin əlavə edilməsi `pfifo_tail_enqueue` funksiyasını tetikləyəcək. - Qdisc_B, `sch->limit == 0` olmaqla konfiqurasiya edilib. - Qdisc_A, əlavə edilmiş paketi Qdisc_B-yə yönləndirmək üçün konfiqurasiya edilib. Paketin Qdisc_A vasitəsilə əlavə edilməsi buna səbəb olacaq: - hfsc_enqueue(Qdisc_A) -> pfifo_tail_enqueue(Qdisc_B) - Qdisc_B->q.qlen += 1 - pfifo_tail_enqueue() `NET_XMIT_CN` qaytarır - hfsc_enqueue() `NET_XMIT_SUCCESS` yoxlayır və `NET_XMIT_CN` görür => hfsc_enqueue() Qdisc_A-nın qlen dəyərini artırmır. Bütün bu proses Qdisc_A->q.qlen == 0 və Qdisc_B->q.qlen == 1 olan vəziyyətə gətirib çıxarır. 'hfsc'-ni digər tiplərlə (məsələn: 'drr') əvəz etmək də eyni problemlə nəticələnir. Bu, valideynin qlen dəyəri onun övladlarının qlen dəyərlərinin cəminə bərabər olmalı olduğu dizayna ziddir. Xətanın təsiri: Bu problem, əlçatan olduqda, user->kernel imtiyazlarının yüksəldilməsi üçün istifadə edilə bilər.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc18 fev 2025
İlk görülmə18 fev 2025

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.4.291, 5.10.235, 5.15.179, 6.1.130, 6.6.83, 6.12.14, 6.13.3 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel2.6.34 ≤ v < 5.4.291, 5.5 ≤ v < 5.10.235, 5.11 ≤ v < 5.15.179, 5.16 ≤ v < 6.1.130, 6.2 ≤ v < 6.6.83, 6.7 ≤ v < 6.12.14, 6.13 ≤ v < 6.13.3, 6.145.4.291, 5.10.235, 5.15.179, 6.1.130, 6.6.83, 6.12.14, 6.13.3

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-2025-21702 · Linux Kernel · Dark Radar