- Yama var
- Son 7 gün
CVE-2026-99032
Linux çekirdeğinde SMC soketinde getname sırasında use-after-free ve NULL dereference hatası
- Yayımlandı
- Güncellendi
- 24 Eki 2026
- Açık yaşı
- 5 gün
- Kaydı açan
- Linux
ÖzetTürkçe
Linux çekirdeğinde, net/smc içindeki smc_getname fonksiyonu smc->clcsock değerine clcsock_release_lock kilidi tutulmadan erişmektedir. Bağlantı grubu sonlandırma işlemi, SMC soketi hâlâ açıkken (örneğin shutdown(SHUT_WR) çağrısından sonra) smc_close_active_abort üzerinden CLC soketini serbest bırakabilir. Bu durumda getsockname çağrısını yapan bir kullanıcı, smc->clcsock işaretçisini yükledikten sonra, sonlandırma iş parçacığı işaretçiyi temizleyip sock_release çağırdığında, clcsock->ops erişimi veya getname çağrısı serbest bırakılmış bellek üzerinde gerçekleşebilir; bu bir use-after-free hatasına yol açar. Eğer işaretçi yükleme işleminden önce temizlenmişse NULL dereference oluşur. Sistem çağrısının dosya referansı SMC soketini canlı tutar ancak CLC soketinin eşzamansız olarak serbest bırakılmasını engellemez. KASAN, test amaçlı zamanlama enstrümantasyonu ile slab-use-after-free hatasını (smc_getname+0x19e/0x1b0) bildirmiştir. Düzeltme olarak, işaretçi kontrolü ve getname geri çağrısı boyunca clcsock_release_lock kilidi tutulmakta, böylece smc_clcsock_release ile eşzamanlılık sağlanmaktadır. CLC soketi zaten serbest bırakılmışsa -EBADF döndürülmekte; aksi hâlde mevcut eş durumu kontrolü ve geri çağrının dönüş değeri korunmaktadır.
Kaynaktaki açıklama (İngilizce)
In the Linux kernel, the following vulnerability has been resolved:
net/smc: protect clcsock lifetime in smc_getname
smc_getname() dereferences smc->clcsock without holding
clcsock_release_lock. Link-group termination can release the CLC socket
through smc_close_active_abort() while the SMC socket is still open,
for example after shutdown(SHUT_WR).
A getsockname() caller can load smc->clcsock, then the termination worker
can clear the pointer and call sock_release() before the caller accesses
clcsock->ops or invokes getname(). This causes a use-after-free; if the
worker clears the pointer before the load, it causes a NULL dereference.
The syscall's file reference keeps the SMC socket alive but does not
prevent asynchronous release of its CLC socket.
KASAN reported the following with test-only timing instrumentation:
BUG: KASAN: slab-use-after-free in smc_getname+0x19e/0x1b0
Read of size 8 at addr ffff888109abb4e0 by task poc/103
Call Trace:
smc_getname+0x19e/0x1b0
do_getsockname+0xe5/0x170
__sys_getsockname+0x8c/0x100
Allocated by task 95:
sock_alloc_inode+0x1e/0x280
sock_alloc+0x3d/0x240
__sock_create+0x7e/0x430
smc_create+0x121/0x240
Freed by task 0:
kmem_cache_free+0xcc/0x340
rcu_core+0x50a/0x1850
Last potentially related work creation:
evict+0x446/0x6c0
smc_clcsock_release+0xa8/0xd0
smc_close_active_abort+0x26a/0x3a0
__smc_lgr_terminate.part.0+0x137/0x2e0
Hold clcsock_release_lock across the pointer check and the getname()
callback to serialize with smc_clcsock_release(). Return -EBADF if the
CLC socket has already been released, preserving the existing peer
state check and the callback's return value otherwise.
Bu açığın açıklamasını Türkçeye çevirdik. Adım adım çözüm önerilerini kritik ve yeni açıklar için hazırlıyoruz; düzeltilmiş sürüm aşağıdaki tabloda, ayrıntılar üreticinin duyurusunda.
Etkilenen sürümler1 yazılım
| Yazılım | Etkilenen | Düzeltildiği sürüm |
|---|---|---|
| Linux | ≥ 4.19.299, < 4.20 | 4.20 |
| 5.1 | – | |
| < 5.1 Etkilenmiyor | – | |
| ≥ 6.6.160 Etkilenmiyor | – | |
| ≥ 6.12.113 Etkilenmiyor | – | |
| ≥ 6.18.57 Etkilenmiyor | – | |
| ≥ 7.2.11 Etkilenmiyor | – |
Kaynaklar7 kaynak
- CVE.org kaydı
- NVD kaydı
- git.kernel.org/…ble/c/e607017a553d2a48e428ec8b8ffb06bf3bb92ce9 Diğer
- git.kernel.org/…ble/c/1512e3714b3946bda75a160a34f22a51710daa43 Diğer
- git.kernel.org/…ble/c/6a1833f0d7dc037c8e876b9178ba69d5d107c086 Diğer
- git.kernel.org/…ble/c/c223da71abfaea2ebb1c7208ae9ebf15038f9388 Diğer
- git.kernel.org/…ble/c/64a6b36b0e1855288080bc5f89769f27d6dc03c8 Diğer
Kayıt geçmişi
- Yayımlandı
İlgili açıklar
Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.