Pelancaran versi baharu Glibc 2.34 telah diumumkan baru-baru ini . Ia hadir selepas enam bulan pembangunan dan merangkumi beberapa perubahan penting, terutamanya penyertaan pustaka libpthread, libdl, libutil dan libanl, serta pelbagai pembetulan pepijat, salah satunya menyebabkan ranap sistem.
Bagi mereka yang tidak biasa dengan Glibc, ia merupakan pustaka GNU C, yang biasanya dikenali sebagai glibc, dan merupakan pustaka masa jalan standard untuk bahasa GNU C. Pada sistem tempat ia digunakan, pustaka C ini, yang menyediakan dan mentakrifkan panggilan sistem dan fungsi asas lain, digunakan oleh hampir semua program.
Ciri baru utama Glibc 2.34
Dalam versi baharu Glibc 2.34 ini, pustaka utama libpthread, libdl, libutil dan libanl telah disepadukan ; penggunaan fungsinya dalam aplikasi tidak lagi memerlukan penyambungannya dengan penunjuk -lpthread, -ldl, -lutil dan -lanl.
Tambahan pula, dinyatakan bahawa persediaan telah dibuat untuk mengintegrasikan libresolv ke dalam libc, yang akan membolehkan proses naik taraf glibc yang lebih lancar dan memudahkan pelaksanaan masa jalan. Pustaka stub juga telah disediakan untuk keserasian dengan aplikasi yang dibina menggunakan versi glibc yang lebih awal.
Antara perubahan yang difokuskan pada Linux dalam Glibc 2.34, yang paling ketara ialah keupayaan tambahan untuk menggunakan jenis time_t 64-bit dalam konfigurasi yang secara tradisinya menggunakan jenis time_t 32-bit . Ciri ini hanya tersedia pada sistem dengan kernel versi 5.1 dan lebih tinggi.
Satu lagi perubahan khusus untuk Linux ialah pelaksanaan fungsi `execveat` , yang membolehkan anda melaksanakan fail boleh laku daripada deskriptor fail terbuka . Fungsi baharu ini juga digunakan dalam pelaksanaan panggilan `fexecve`, yang tidak memerlukan sistem fail pseudo `/proc` dipasang semasa permulaan.
Fungsi close_range() juga telah ditambah, yang tersedia untuk versi Linux 5.9 dan lebih tinggi dan boleh digunakan untuk membolehkan proses menutup keseluruhan julat deskriptor fail terbuka sekaligus. Selain itu, parameter glibc.pthread.stack_cache_size telah dilaksanakan, yang boleh digunakan untuk melaraskan saiz cache tindanan pthread.
Tambahan pula, fungsi `_Fork` telah ditambah, pengganti fungsi `fork` yang memenuhi keperluan "async-signal-safe", bermakna ia boleh dipanggil dengan selamat daripada pengendali isyarat. Semasa pelaksanaan `_Fork`, persekitaran minimum dibentuk, mencukupi untuk memanggil fungsi dalam pengendali isyarat seperti `raise` dan `execute`, tanpa menggunakan ciri yang boleh mengubah kunci atau keadaan dalaman.
Untuk bahagian kelemahan yang diperbaiki di Glibc 2.34, berikut disebutkan:
CVE-2021-27645: kegagalan proses nscd (daemon caching pelayan nama) disebabkan oleh panggilan berganda kepada fungsi percuma semasa memproses permintaan kumpulan rangkaian yang direka khas.
CVE-2021-33574: Akses kepada kawasan memori use-after-free dalam fungsi mq_notify apabila menggunakan jenis pemberitahuan SIGEV_THREAD dengan atribut thread yang mana topeng pengikatan CPU alternatif ditetapkan. Isu ini mungkin menyebabkan ranap, tetapi pilihan serangan lain tidak dikecualikan.
CVE-2021-35942: Limpahan saiz parameter dalam fungsi wordexp mungkin menyebabkan aplikasi ranap.
Perubahan ketara lain termasuk:
- Fungsi timespec_getres, yang ditentukan dalam draf standard ISO C2X, telah ditambahkan dan fungsi timespec_get telah ditingkatkan dengan kemampuan yang serupa dengan fungsi jam_getres POSIX.
- Dalam fail gconv-modul, hanya satu set modul gconv utama yang tersisa, dan selebihnya dipindahkan ke fail gconv-modules-extra.conf tambahan yang terdapat di direktori gconv-modules.d.
- Penggunaan pautan simbolik untuk menghubungkan objek bersama yang dapat dipasang ke versi Glibc telah dihapus. Objek-objek ini kini dipasang sebagaimana adanya (misalnya, libc.so.6 kini menjadi fail dan bukannya pautan ke libc-2.34.so).
- Di Linux, fungsi seperti shm_open dan sem_open kini memerlukan sistem fail untuk memori bersama yang terpasang pada / dev / shm mount point.
Akhir sekali, jika anda berminat untuk mengetahui lebih lanjut tentang versi baharu ini, anda boleh mendapatkan butirannya di pautan berikut.