Zafiyet.live Keşfet. Değerlendir. Düzelt. Doğrula.
  • Son 7 gün

CVE-2026-99056

Linux çekirdeğinde strparser ayrıştırıcısı sökülmeden önce __strp_recv çalışmasının bitmesi garanti edilmiyor

Linux

Yüksek 7,8 CVSS 3.1
Yayımlandı
Güncellendi
24 Eki 2026
Açık yaşı
5 gün
Kaydı açan
Linux

ÖzetTürkçe

Linux çekirdeğinde, strparser alt sisteminde bir yarış koşulu (race condition) güvenlik açığı bulunmaktadır. strp_done fonksiyonunun üzerindeki yorum, strp durdurulduğunda strp_recv fonksiyonunun artık çağrılmayacağını belirtmektedir. Ancak bu yalnızca çağıran tarafın, strp_stop çağrılmadan önce başlamış strp_recv çağrılarının strp_done çağrılmadan önce tamamlanmasını garanti eden bir mekanizmaya (ör. kilitleme) sahip olması durumunda doğrudur. Bu güvenlik açığını gidermek için, çalışan her strp_recv çağrısının (bu çağrı, ->sk_data_ready üzerinden çağrıldığında bh_lock_sock, strp_work üzerinden çağrıldığında ise lock_sock altında çalışır) tamamlandığından emin olmak üzere sahte bir lock_sock/release_sock çifti eklenmiştir. Bu yarış koşulundan yalnızca espintcp etkilenebilir; ancak yama, strp kullanacak gelecekteki hiçbir kullanıcının bu hatayı taşımamasını sağlamaktadır. strp->sk üzerinde (strp'nin "genel mod"u) çökme oluşabileceği belirtilmektedir; ancak bu mod 9 yıldır mevcut olmasına rağmen hiç kullanılmamıştır ve yakında kaldırılacaktır. Durdurulma, duraklatma vb. bitleri, strp_stop ile strp_pause/unpause arasındaki yarışları önlemek için u8 türüne çevrilmiştir. Bir kanıt-of-concept (PoC) yayımlanmış olup, olası kullanımdan sonra serbest bırakma (UAF) hatasının bir istismara dönüştürülebildiği gösterilmiştir.

Kaynaktaki açıklama (İngilizce)

In the Linux kernel, the following vulnerability has been resolved:

strparser: make sure __strp_recv isn't running before tearing down the parser

The comment above strp_done() claims that if strp is stopped,
strp_recv will no longer be called. That's only true if the caller has
a mechanism (eg locking) to guarantee that strp_recv() calls that
started before strp_stop() have completed by the time we call
strp_done().

This adds a dummy lock_sock/release_sock pair to guarantee that any
in-flight strp_recv() (which runs under either bh_lock_sock or
lock_sock, depending if it's called from ->sk_data_ready or strp_work)
has completed.

Only espintcp can be affected by this race condition, but this patch
makes sure no future user of strp can have the bug.

This could crash on strp->sk ("general mode" of strp), but this mode
has been here for 9 years and has never been used. It'll be gone soon,
no point worrying about it.

Switch the stopped/paused/etc bits to u8's to avoid races between
strp_stop() and strp_pause/unpause().

A reproducer has been published and turns the possible UAF into an
exploit [1].

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ımEtkilenenDüzeltildiği sürüm
Linux 5.6 –
< 5.6 Etkilenmiyor –
≥ 6.6.160 Etkilenmiyor –
≥ 6.12.113 Etkilenmiyor –
≥ 6.18.57 Etkilenmiyor –
≥ 7.2.11 Etkilenmiyor –

Kaynaklar7 kaynak

Kayıt geçmişi

  1. 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.