CVE-2026-68187
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: exec: transfer_args_to_stack() içindeki işaretsiz döngü sayacı sarmasını düzelt stop değeri bprm->p >> PAGE_SHIFT ifadesinden türetilir. index değişkeni unsigned long türündedir. bprm->p PAGE_SIZE'ın altına düşerse ve stop sıfır olursa, index >= stop döngü koşulu her zaman doğru olur. index == 0 yinelemesinden sonra azaltma ULONG_MAX değerine sarar ve bprm->page[ULONG_MAX] dizinin önünde sizeof(void *) bayt okur. İşaretçi -1 değerine sarmıştır. Bu çöp işaretçi daha sonra kmap_local_page() işlevine geçirilir ve oraya denk gelen yerden PAGE_SIZE bayt, oluşturulmakta olan sürecin yığınına kopyalanır. Ayrıca döngü de sonlanmaz... Bu duruma ulaşmak yalnızca bprm->p < PAGE_SIZE olmasını gerektirir. !MMU üzerinde bprm_set_stack_limit() ve bprm_hit_stack_limit() boştur. Dolayısıyla bprm->p değerinin ne kadar aşağı itilebileceğine ilişkin tek kısıt valid_arg_len() işlevidir, yani her bir dizenin kalan alana hâlâ sığmasıdır. bprm->p, PAGE_SIZE * MAX_ARG_PAGES - sizeof(void *) değerinden başlar; bu nedenle 31 sayfadan biraz fazla olan tek bir argüman veya ortam dizesi onu ilk sayfada bırakır: Oops - load access fault [#1] CPU: 0 UID: 0 PID: 1 Comm: victim Not tainted 7.2.0-rc4 #1 epc : __memcpy+0xd4/0xf8 ra : transfer_args_to_stack+0xaa/0xae s4 : ffffffffffffffff s2 : 0000000000000000 a1 : ffffffdc98000000 a2 : 0000000000001000 status: 0000000a00001880 badaddr: ffffffdc98000000 cause: 0000000000000005 [<801a5324>] __memcpy+0xd4/0xf8 [<800d5f6a>] load_flat_binary+0x43a/0x65e [<800a2de4>] bprm_execve+0x1d4/0x316 [<800a351a>] do_execveat_common+0x12e/0x138 [<800a3d44>] __riscv_sys_execve+0x38/0x4e Kernel panic - not syncing: Fatal exception in interrupt Bu gizemli bir hatadır ancak yine de düzeltmeliyiz. Döngü, index stop değerine ulaştığında sonlanacak şekilde MAX_ARG_PAGES değerinden geriye doğru sayar; stop == 0 durumu da buna dahildir. Gerçekleştirilen yinelemeler, stop değerinin diğer tüm değerleri için değişmez. Yalnızca CONFIG_MMU=n derlemeleri etkilenir; transfer_args_to_stack() işlevi yalnızca nommu üzerinde binfmt_flat ve binfmt_elf_fdpic tarafından kullanılır. Döngü git geçmişinden daha eskidir. commit 7e7ec6a93434 ("elf_fdpic_transfer_args_to_stack(): make it generic") yalnızca onu binfmt_elf_fdpic.c dosyasından fs/exec.c dosyasına taşımış ve kopyalamayı ilk sayfanın kullanılan kısmıyla sınırlamıştır. Koşul ve azaltma 2.6.12-rc2 sürümünden bu yana değişmemiştir.
Nasıl düzeltilir
- Linux Linuxa9eb5c4949008034909bc34ecfa0843ecc1d0ab3, 67cf5cdad823afb0530d6d0341fbf4ca07e93a09, 66e20942890a383eb39b2009a2ceb4c2ebec37ef, c62bb00caba66e01fb578d5f0302f247dc64930a, dfc2a00742af4cb7251c1a8fbce4fbae3cc0de4e, 2bc6bf70d41055377f390d06f0f3521deb62fd3b, 55fa2c7f2b15583d1a2fe1b5abcc24377359339f, 16cc4f5c1c4b9e45eca7f7deefa5410a292db599 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < a9eb5c4949008034909bc34ecfa0843ecc1d0ab3, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 67cf5cdad823afb0530d6d0341fbf4ca07e93a09, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 66e20942890a383eb39b2009a2ceb4c2ebec37ef, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < c62bb00caba66e01fb578d5f0302f247dc64930a, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < dfc2a00742af4cb7251c1a8fbce4fbae3cc0de4e, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 2bc6bf70d41055377f390d06f0f3521deb62fd3b, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 55fa2c7f2b15583d1a2fe1b5abcc24377359339f, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 16cc4f5c1c4b9e45eca7f7deefa5410a292db599, 2.6.12 | a9eb5c4949008034909bc34ecfa0843ecc1d0ab3, 67cf5cdad823afb0530d6d0341fbf4ca07e93a09, 66e20942890a383eb39b2009a2ceb4c2ebec37ef, c62bb00caba66e01fb578d5f0302f247dc64930a, dfc2a00742af4cb7251c1a8fbce4fbae3cc0de4e, 2bc6bf70d41055377f390d06f0f3521deb62fd3b, 55fa2c7f2b15583d1a2fe1b5abcc24377359339f, 16cc4f5c1c4b9e45eca7f7deefa5410a292db599 |
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.