CVE-2024-53095

Kritik

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: smb: client: Network namespace için serbest bırakıldıktan sonra kullanım (use-after-free) hatası düzeltildi. Yakın zamanda bir müşteriden, CIFS'nin bir sunucuya yeniden bağlanırken oops tetiklediğine dair rapor alınmıştır. [0] İş yükü Kubernetes üzerinde çalışmakta ve bazı podlar, kök olmayan (non-root) network namespace'lerinde CIFS sunucularını bağlamaktadır. Sorun nadiren meydana gelmiş ancak her zaman pod kapanırken oluşmuştur. Kök neden, network namespace için yanlış referans sayımıdır. CIFS, soketin ait olduğu netns'nin refcnt değerini tutmayan kernel soketlerini kullanır. Bu durum, CIFS'nin soketin her zaman kendi netns'sinden önce serbest bırakıldığından emin olması gerektiği anlamına gelir; aksi takdirde serbest bırakıldıktan sonra kullanım (use-after-free) durumu oluşur. Yeniden üretme adımları yaklaşık olarak şöyledir: 1. Kök olmayan bir netns içinde CIFS bağla 2. Netns üzerinden gelen paketleri düşür 3. Netns'yi yok et 4. CIFS bağlantısını kes (unmount) Sorun, aşağıdaki betik [1] ile hızlıca yeniden üretilebilir ve CONFIG_NET_NS_REFCNT_TRACKER etkinse splat [2] görülebilir. Soket TCP olduğunda, asenkron zamanlayıcılar nedeniyle refcnt tutmadan netns ömrünü garanti etmek zordur. 9744d2bf1976 ("smc: Fix use-after-free in tcp_write_timer_handler().") commit'inde SMC için yapıldığı gibi, her soket için netns refcnt tutulacaktır. put_net() fonksiyonunun cifs_put_tcp_session()'dan clean_demultiplex_info()'ya taşınması gerektiği unutulmamalıdır; aksi takdirde, cifsd cifs_demultiplex_thread() üzerinden yeniden bağlanmaya çalışırken __sock_create() hala serbest bırakılmış bir netns'ye erişebilir. Ayrıca, kod RCU altında olmadığı ve aynı adresin başka bir netns'ye yeniden atanma ihtimali düşük de olsa bulunduğu için maybe_get_net() doğrudan __sock_create()'den hemen önce yerleştirilemez. [0]: CIFS: VFS: \\XXXXXXXXXXX has not responded in 15 seconds. Reconnecting... CIFS: Serverclose failed 4 times, giving up Unable to handle kernel paging request at virtual address 14de99e461f84a07 Mem abort info: ESR = 0x0000000096000004 EC = 0x25: DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 FSC = 0x04: level 0 translation fault Data abort info: ISV = 0, ISS = 0x00000004 CM = 0, WnR = 0 [14de99e461f84a07] address between user and kernel address ranges Internal error: Oops: 0000000096000004 [#1] SMP Modules linked in: cls_bpf sch_ingress nls_utf8 cifs cifs_arc4 cifs_md4 dns_resolver tcp_diag inet_diag veth xt_state xt_connmark nf_conntrack_netlink xt_nat xt_statistic xt_MASQUERADE xt_mark xt_addrtype ipt_REJECT nf_reject_ipv4 nft_chain_nat nf_nat xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 xt_comment nft_compat nf_tables nfnetlink overlay nls_ascii nls_cp437 sunrpc vfat fat aes_ce_blk aes_ce_cipher ghash_ce sm4_ce_cipher sm4 sm3_ce sm3 sha3_ce sha512_ce sha512_arm64 sha1_ce ena button sch_fq_codel loop fuse configfs dmi_sysfs sha2_ce sha256_arm64 dm_mirror dm_region_hash dm_log dm_mod dax efivarfs CPU: 5 PID: 2690970 Comm: cifsd Not tainted 6.1.103-109.184.amzn2023.aarch64 #1 Hardware name: Amazon EC2 r7g.4xlarge/, BIOS 1.0 11/1/2018 pstate: 00400005 (nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : fib_rules_lookup+0x44/0x238 lr : __fib_lookup+0x64/0xbc sp : ffff8000265db790 x29: ffff8000265db790 x28: 0000000000000000 x27: 000000000000bd01 x26: 0000000000000000 x25: ffff000b4baf8000 x24: ffff00047b5e4580 x23: ffff8000265db7e0 x22: 0000000000000000 x21: ffff00047b5e4500 x20: ffff0010e3f694f8 x19: 14de99e461f849f7 x18: 0000000000000000 x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000 x14: 0000000000000000 x13: 0000000000000000 x12: 3f92800abd010002 x11: 0000000000000001 x10: ffff0010e3f69420 x9 : ffff800008a6f294 x8 : 0000000000000000 x7 : 0000000000000006 x6 : 0000000000000000 x5 : 0000000000000001 x4 : ffff001924354280 x3 : ffff8000265db7e0 x2 : 0000000000000000 x1 : ffff0010e3f694f8 x0 : ffff00047b5e4500 Call trace: fib_rules_lookup+0x44/0x238 __fib_lookup+0x64/0xbc ip_route_output_key_hash_rcu+0x2c4/0x398 ip_route_output_key_hash+0x60/0x8c tcp_v4_connect+0x290/0x488 __inet_stream_connect+0x108/0x3d0 inet_stream_connect+0x50/0x78 kernel_connect+0x6c/0xac generic_ip_conne ---truncated---

ÖnemKritik
CVSS9.8
İstismar olasılığı—
ÜrünLinux Kernel
Yayın21 Kas 2024
İlk görülme21 Kas 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel6.6.62, 6.11.9 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel4.2 ≤ v < 6.6.62, 6.7 ≤ v < 6.11.9, 6.126.6.62, 6.11.9

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.

Intelligence 360 paketinde

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.

CVE-2024-53095 · Linux Kernel · Dark Radar