Kerentanan dalam timbunan IPv6 kernel Linux yang membenarkan pelaksanaan kod jauh

Maklumat telah didedahkan tentang kerentanan CVE-2023-6200) dalam susunan rangkaian kernel Linux, yang, dalam keadaan tertentu, membenarkan penyerang dari rangkaian tempatan mencapai pelaksanaan kodnya dengan menghantar paket ICMPv6 yang direka khas dengan mesej RA (Router Advertisement) yang bertujuan untuk mengiklankan maklumat tentang penghala.

Kerentanan hanya boleh dieksploitasi daripada rangkaian tempatan dan muncul pada sistem dengan sokongan IPv6 didayakan dan parameter sysctl β€œnet.ipv6.conf.<network_interface_name>.accept_ra” aktif (boleh disemak dengan arahan β€œsysctl net.ipv6.conf | grep accept_ra”) , yang dilumpuhkan secara lalai dalam RHEL dan Ubuntu untuk antara muka rangkaian luaran, tetapi didayakan untuk antara muka gelung balik, yang membenarkan serangan daripada sistem yang sama.

Kerentanan ini disebabkan oleh keadaan perlumbaan apabila pemungut sampah memproses rekod fib6_info yang lapuk, yang boleh membawa kepada akses kepada kawasan memori yang telah dibebaskan (bebas guna selepas). Apabila menerima paket ICMPv6 dengan mesej iklan penghala (RA, Iklan Penghala), susunan rangkaian memanggil fungsi ndisc_router_discovery(), yang, jika mesej RA mengandungi maklumat tentang hayat laluan, memanggil fungsi fib6_set_expires() dan mengisi gc_link struktur. Untuk membersihkan entri usang, gunakan fungsi fib6_clean_expires(), yang menanggalkan entri dalam gc_link dan mengosongkan memori yang digunakan oleh struktur fib6_info. Dalam kes ini, terdapat masa tertentu apabila memori untuk struktur fib6_info telah pun dibebaskan, tetapi pautan kepadanya terus berada dalam struktur gc_link.

Kerentanan muncul bermula dari cawangan 6.6 dan telah diperbaiki dalam versi 6.6.9 dan 6.7. Status membetulkan kerentanan dalam pengedaran boleh dinilai pada halaman ini: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Antara pengedaran yang menghantar pakej dengan kernel 6.6, kita boleh perhatikan Arch Linux, Gentoo, Fedora, Slackware, OpenMandriva dan Manjaro; dalam pengedaran lain, ada kemungkinan perubahan dengan ralat disandarkan ke dalam pakej dengan cawangan kernel yang lebih lama (untuk contoh, dalam Debian disebutkan bahawa pakej dengan kernel 6.5.13 terdedah, manakala perubahan bermasalah muncul di cawangan 6.6). Sebagai penyelesaian keselamatan, anda boleh melumpuhkan IPv6 atau menetapkan parameter β€œnet.ipv0.conf.*.accept_ra” kepada 6.

Sumber: opennet.ru

Tambah komen