CVE-2024-49888

Orta

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: bpf: Bir sdiv taşma sorunu düzeltildi Zac Ecob, bir bpf programının aşağıdaki hata nedeniyle çekirdek çökmesine yol açabildiği bir sorun bildirmiştir: Oops: divide error: 0000 [#1] PREEMPT SMP KASAN PTI Hata, aşağıdaki işaretli bölme işleminden kaynaklanmaktadır: LLONG_MIN/-1 (burada LLONG_MIN -9,223,372,036,854,775,808 değerine eşittir). LLONG_MIN/-1 işleminin pozitif bir sayı olan 9,223,372,036,854,775,808 sonucunu vermesi beklenir ancak 64 bit sistemler için maksimum pozitif sayı 9,223,372,036,854,775,807 olduğundan bu imkansızdır. x86_64 üzerinde LLONG_MIN/-1 işlemi bir çekirdek istisnasına (exception) neden olur. arm64 üzerinde ise LLONG_MIN/-1 işleminin sonucu LLONG_MIN'dir. Yapılan daha detaylı incelemelerde, bpf programı x86_64 platformunda çalışırken aşağıdaki tüm sdiv/smod durumlarının bir istisna tetikleyebileceği tespit edilmiştir: - 64 bit işlem için LLONG_MIN/-1 - 32 bit işlem için INT_MIN/-1 - 64 bit işlem için LLONG_MIN%-1 - 32 bit işlem için INT_MIN%-1 Burada -1 değeri bir sabit (immediate) veya bir yazmaçta (register) olabilir. arm64 üzerinde herhangi bir istisna oluşmamaktadır: - LLONG_MIN/-1 = LLONG_MIN - INT_MIN/-1 = INT_MIN - LLONG_MIN%-1 = 0 - INT_MIN%-1 = 0 Burada -1 değeri bir sabit veya bir yazmaçta olabilir. Yukarıdaki durumları yönetmek için talimat yamalaması (insn patching) gerekmiş ve yamalanmış kodlar yukarıdaki arm64 sonuçlarıyla uyumlu sonuçlar üretmiştir. Aşağıdakiler, bölenin bir yazmaçta saklandığı durumlarda hem -1 hem de 0 bölenlerini içeren sdiv/smod istisnalarını yönetmek için kullanılan sözde kodlardır. sdiv: tmp = rX tmp += 1 /* [-1, 0] -> [0, 1] if tmp >(unsigned) 1 goto L2 if tmp == 0 goto L1 rY = 0 L1: rY = -rY; goto L3 L2: rY /= rX L3: smod: tmp = rX tmp += 1 /* [-1, 0] -> [0, 1] if tmp >(unsigned) 1 goto L1 if tmp == 1 (is64 ? goto L2 : goto L3) rY = 0; goto L2 L1: rY %= rX L2: goto L4 // sadece !is64 durumunda L3: wY = wY // sadece !is64 durumunda L4: [1] https://lore.kernel.org/bpf/tPJLTEh7S_DxFEqAI2Ji5MBSoZVg7_G-Py2iaZpAaWtM961fFTWtsnlzwvTbzBzaUzwQAoNATXKUlt0LZOFgnDcIyKCswAnAGdUF3LBrhGQ=@protonmail.com/

ÖnemOrta
CVSS5.5
İstismar olasılığı—
ÜrünLinux Kernel
Yayın21 Eki 2024
İlk görülme21 Eki 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel6.10.14, 6.11.3 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernelv < 6.10.14, 6.11 ≤ v < 6.11.36.10.14, 6.11.3

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.

CVE-2024-49888 · Linux Kernel · Dark Radar