CVE-2023-52986
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: bpf, sockmap: Bir dinleyici klonlanırken tcp_bpf_prots varyantlarından herhangi birinin kontrol edilmesi Bir sockmap ile ilişkilendirilmiş olan dinleme soketinin sk_prot değeri geçersiz kılınır. Bu değer, tcp_bpf_prots içindeki struct proto varyantlarından birine işaret eder. Varyant, soketin ailesine ve hangi sockmap programlarının ekli olduğuna bağlıdır. Bir TCP dinleyicisinden klonlanan alt soket, başlangıçta onların sk_prot değerini miras alır. Ancak klonlama işlemi tamamlanmadan önce, alt soketin proto değeri dinleyicinin orijinal non-tcp_bpf_prots değerine geri döndürülür. Bu işlem tcp_create_openreq_child -> tcp_bpf_clone fonksiyonlarında gerçekleşir. Günümüzde, tcp_bpf_clone içerisinde alt soketin proto değerinin geri döndürülmesi gerekip gerekmediği yalnızca TCP_BPF_BASE proto varyantı kontrol edilerek tespit edilmektedir. Bu durum doğru değildir. Bir sockmap ile ilişkilendirilmiş dinleme soketinin sk_prot değeri, tcp_bpf_prots içindeki herhangi bir varyanta işaret edebilir. Eğer dinleyicinin sk_prot değeri TCP_BPF_BASE varyantı değilse, alt soket istemeden tcp_bpf_clone tarafından miras alınan sk_prot değeriyle bırakılır. Bu durum, alt soket durumu tcp_bpf_prot işlemleri için yapılandırılmadığından, kapatma sırasında sonsuz özyineleme gibi sorunlara yol açmaktadır [1]. tcp_bpf_clone içerisindeki kontrol, tüm tcp_bpf_prots varyantlarını tespit edecek şekilde düzenlenmiştir. Dinleme soketleri için her zaman TCP_BPF_BASE varyantını kullanmak amacıyla tcp_bpf_update_proto içerisinde sk_prot geçersiz kılınırken soket durumunun kontrol edilmesinin yeterli olmayacağı unutulmamalıdır. b8b8315e39ff ("bpf, sockmap: Remove unhash handler for BPF sockmap usage") commit'inden beri, bir soketin halihazırda bir sockmap ile ilişkilendirilmişken TCP_LISTEN durumuna geçmesi mümkündür; örneğin connect() -> haritaya ekleme -> connect(AF_UNSPEC) -> listen(). [1]: https://lore.kernel.org/all/[email protected]/
Nasıl düzeltilir
- linux linux_kernel5.10.168, 5.15.93, 6.1.11 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 5.7 ≤ v < 5.10.168, 5.11 ≤ v < 5.15.93, 5.16 ≤ v < 6.1.11, 6.2 | 5.10.168, 5.15.93, 6.1.11 |
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.