CVE-2026-72124
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: can: isotp: TX durum geçişlerini so->rx_lock altında sırala TX durum makinesi (so->tx.state) üç bağlamdan yürütülür: sendmsg() bir aktarımı talep edip ilerletirken, RX yolu Flow Control/echo çerçevelerini tüketirken ve iki hrtimer durmuş bir aktarımın zaman aşımına uğraması sırasında. sendmsg() içindeki kilitsiz cmpxchg() talebinin, başka yerlerde so->rx_lock altında yapılan hrtimer_cancel() çağrılarıyla karıştırılması, bir çerçevenin veya zamanlayıcı geri çağrısının çoktan ilerlemiş bir durum üzerinde işlem yapabildiği ve ilgisiz bir aktarımı bozabildiği pencereler bırakıyordu. so->rx_lock artık bir TX talebinin tüm yaşam döngüsünü kapsar: sendmsg() so->tx.state'in ISOTP_IDLE olduğunu kontrol etmek, onu ISOTP_SENDING'e geçirmek, so->tx_gen'i artırmak ve önceki aktarımın zamanlayıcılarını boşaltmak için bu kilidi alır - hepsi tek bir kritik bölüm olarak. isotp_rcv_fc()/isotp_rcv_cf() zaten isotp_rcv() aracılığıyla bu kilit altında çalışır ve isotp_rcv_echo() artık bu kilidi kendisi alır, böylece hiçbiri bir aktarımı talep ortasında gözlemleyemez. Bu ayrıca, bir aktarımın başka bir iş parçacığı eşzamanlı olarak onu talep ederken veya bitirirken sendmsg()'in temizleme yollarına (sinyal veya gönderme hatası) devredilemeyeceği anlamına gelir, böylece bu yollar zamanlayıcıları koşulsuz olarak iptal edebilir ve durumu sıfırlayabilir. isotp_release() soketi aynı şekilde talep eder, böylece yarışan bir sendmsg() tutarlı bir ISOTP_SHUTDOWN görür ve zamanlayıcısını kurmayı veya göndermeyi atlar. Yalnızca hrtimer geri çağrıları so->rx_lock dışında kalır, çünkü bunlar başka yerlerde so->rx_lock'un iptali altında çalışır ve kilidi kendileri almaları kilitlenmeye yol açar. so->tx_gen, zaman aşımına uğrattıkları aktarımın hâlâ etkin olan aktarım olup olmadığını tanımalarını sağlar, böylece o zamandan beri tamamlanmış veya yerine yenisi geçmiş bir aktarım için hata bildirmezler.
Nasıl düzeltilir
- Linux Linuxbbedeb67a9a684f2fb78c55bd3662c400526715e, 377a8f500704da42ed86a4541ed930e9dcfdb2ea, 6da8119e8dd542194103139812d1a4b7dcd1aedd, 0b05eca9589f609e2491b528dccf683168a4cda8, a7d90e7b5e75d7406c889fe36e9a61ee364a00cb, 37beb16e08cae94cc05840c7274225e3b0b38ae7, 4f1fdf1a1c317bcac0c6b6c8e12642c9983de1ca, cf070fe33bfbd1a4c21236078fadb35dd223a157 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | e057dd3fc20ffb3d7f150af46542a51b59b90127 ≤ v < bbedeb67a9a684f2fb78c55bd3662c400526715e, e057dd3fc20ffb3d7f150af46542a51b59b90127 ≤ v < 377a8f500704da42ed86a4541ed930e9dcfdb2ea, e057dd3fc20ffb3d7f150af46542a51b59b90127 ≤ v < 6da8119e8dd542194103139812d1a4b7dcd1aedd, e057dd3fc20ffb3d7f150af46542a51b59b90127 ≤ v < 0b05eca9589f609e2491b528dccf683168a4cda8, e057dd3fc20ffb3d7f150af46542a51b59b90127 ≤ v < a7d90e7b5e75d7406c889fe36e9a61ee364a00cb, e057dd3fc20ffb3d7f150af46542a51b59b90127 ≤ v < 37beb16e08cae94cc05840c7274225e3b0b38ae7, e057dd3fc20ffb3d7f150af46542a51b59b90127 ≤ v < 4f1fdf1a1c317bcac0c6b6c8e12642c9983de1ca, e057dd3fc20ffb3d7f150af46542a51b59b90127 ≤ v < cf070fe33bfbd1a4c21236078fadb35dd223a157, 5.10 | bbedeb67a9a684f2fb78c55bd3662c400526715e, 377a8f500704da42ed86a4541ed930e9dcfdb2ea, 6da8119e8dd542194103139812d1a4b7dcd1aedd, 0b05eca9589f609e2491b528dccf683168a4cda8, a7d90e7b5e75d7406c889fe36e9a61ee364a00cb, 37beb16e08cae94cc05840c7274225e3b0b38ae7, 4f1fdf1a1c317bcac0c6b6c8e12642c9983de1ca, cf070fe33bfbd1a4c21236078fadb35dd223a157 |
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.
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.