CVE-2025-40027
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: net/9p: p9_fd_cancelled fonksiyonundaki çift req put hatası düzeltildi Syzkaller aşağıdaki KASAN sorununu raporlamıştır: general protection fault, probably for non-canonical address 0xfbd59c0000000021: 0000 [#1] PREEMPT SMP KASAN NOPTI KASAN: maybe wild-memory-access in range [0xdead000000000108-0xdead00000000010f] CPU: 0 PID: 5083 Comm: syz-executor.2 Not tainted 6.1.134-syzkaller-00037-g855bd1d7d838 #0 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:__list_del include/linux/list.h:114 [inline] RIP: 0010:__list_del_entry include/linux/list.h:137 [inline] RIP: 0010:list_del include/linux/list.h:148 [inline] RIP: 0010:p9_fd_cancelled+0xe9/0x200 net/9p/trans_fd.c:734 Çağrı İzleme (Call Trace): <TASK> p9_client_flush+0x351/0x440 net/9p/client.c:614 p9_client_rpc+0xb6b/0xc70 net/9p/client.c:734 p9_client_version net/9p/client.c:920 [inline] p9_client_create+0xb51/0x1240 net/9p/client.c:1027 v9fs_session_init+0x1f0/0x18f0 fs/9p/v9fs.c:408 v9fs_mount+0xba/0xcb0 fs/9p/vfs_super.c:126 legacy_get_tree+0x108/0x220 fs/fs_context.c:632 vfs_get_tree+0x8e/0x300 fs/super.c:1573 do_new_mount fs/namespace.c:3056 [inline] path_mount+0x6a6/0x1e90 fs/namespace.c:3386 do_mount fs/namespace.c:3399 [inline] __do_sys_mount fs/namespace.c:3607 [inline] __se_sys_mount fs/namespace.c:3584 [inline] __x64_sys_mount+0x283/0x300 fs/namespace.c:3584 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x35/0x80 arch/x86/entry/common.c:81 entry_SYSCALL_64_after_hwframe+0x6e/0xd8 Bu durum şunlar arasındaki bir yarış durumu (race condition) nedeniyle meydana gelmektedir: - 9p istemcisinin geçersiz bir flush isteği göndermesi ve daha sonra bunu temizlemesi; - p9_read_work() içindeki 9p istemcisinin bekleyen tüm istekleri iptal etmesi. İş Parçacığı 1 İş Parçacığı 2 ... p9_client_create() ... p9_fd_create() ... p9_conn_create() ... // İş Parçacığı 2 başlatılır INIT_WORK(&m->rq, p9_read_work); p9_read_work() ... p9_client_rpc() ... ... p9_conn_cancel() ... spin_lock(&m->req_lock); ... p9_fd_cancelled() ... ... spin_unlock(&m->req_lock); // durum yeniden yazımı p9_client_cb(m->client, req, REQ_STATUS_ERROR) // birinci kaldırma işlemi list_del(&req->req_list); ... spin_lock(&m->req_lock) ... // ikinci kaldırma işlemi list_del(&req->req_list); spin_unlock(&m->req_lock) ... 74d6a5d56629 numaralı commit ("9p/trans_fd: Fix concurrency del of req_list in p9_fd_cancelled/p9_read_work"), 9p dosya sistemi istemcisinde, req_list'in hem p9_read_work hem de p9_fd_cancelled fonksiyonları tarafından eş zamanlı olarak silinebildiği bir eşzamanlılık sorununu, ancak yalnızca req->status değerinin REQ_STATUS_RCVD olduğu durum için düzeltmektedir. p9_fd_cancelled içerisindeki req->status kontrolü, sadece alınmış (received) isteklerin değil, SENT olmayan her şeyin işlenmesini atlayacak şekilde güncellenmiştir; çünkü durumu SENT'ten değiştiren herhangi bir işlem, isteği listesinden de kaldırmıştır. Linux Doğrulama Merkezi (linuxtesting.org) tarafından Syzkaller ile bulunmuştur. [kontrol status == RECV || status == ERROR ifadesinden status != SENT şeklinde güncellendi]
Nasıl düzeltilir
- Linux Linuxa5901a0dfb5964525990106706ae8b98db098226, 5c64c0b7b3446f7ed088a13bc8d7487d66534cbb, c1db864270eb7fea94a9ef201da0c9dc1cbab7b8, 0e0097005abc02c9f262370674f855625f4f3fb4, 284e67a93b8c48952b6fc82129a8d3eb9dc73b06, 716dceb19a9f8ff6c9d3aee5a771a93d6a47a0b6, 448db01a48e1cdbbc31c995716a5dac1e52ba036, 94797b84cb9985022eb9cb3275c9497fbc883bb6, 674b56aa57f9379854cb6798c3bbcef7e7b51ab7 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | afd8d65411551839b7ab14a539d00075b2793451 ≤ v < a5901a0dfb5964525990106706ae8b98db098226, afd8d65411551839b7ab14a539d00075b2793451 ≤ v < 5c64c0b7b3446f7ed088a13bc8d7487d66534cbb, afd8d65411551839b7ab14a539d00075b2793451 ≤ v < c1db864270eb7fea94a9ef201da0c9dc1cbab7b8, afd8d65411551839b7ab14a539d00075b2793451 ≤ v < 0e0097005abc02c9f262370674f855625f4f3fb4, afd8d65411551839b7ab14a539d00075b2793451 ≤ v < 284e67a93b8c48952b6fc82129a8d3eb9dc73b06, afd8d65411551839b7ab14a539d00075b2793451 ≤ v < 716dceb19a9f8ff6c9d3aee5a771a93d6a47a0b6, afd8d65411551839b7ab14a539d00075b2793451 ≤ v < 448db01a48e1cdbbc31c995716a5dac1e52ba036, afd8d65411551839b7ab14a539d00075b2793451 ≤ v < 94797b84cb9985022eb9cb3275c9497fbc883bb6, afd8d65411551839b7ab14a539d00075b2793451 ≤ v < 674b56aa57f9379854cb6798c3bbcef7e7b51ab7, 3.15 | a5901a0dfb5964525990106706ae8b98db098226, 5c64c0b7b3446f7ed088a13bc8d7487d66534cbb, c1db864270eb7fea94a9ef201da0c9dc1cbab7b8, 0e0097005abc02c9f262370674f855625f4f3fb4, 284e67a93b8c48952b6fc82129a8d3eb9dc73b06, 716dceb19a9f8ff6c9d3aee5a771a93d6a47a0b6, 448db01a48e1cdbbc31c995716a5dac1e52ba036, 94797b84cb9985022eb9cb3275c9497fbc883bb6, 674b56aa57f9379854cb6798c3bbcef7e7b51ab7 |
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.