geçenlerde Glibc 2.34'ün yeni sürümünün yayınlandığı duyuruldu altı aylık geliştirmeden sonra gelen ve aralarında libpthread, libdl, libutil ve libanl kitaplıklarının dahil edilmesinin yanı sıra bunlardan birinin tıkanmaya neden olduğu çeşitli hata düzeltmelerinin de dahil olduğu birkaç önemli değişikliğin yapıldığı.
Glibc'ye aşina olmayanlar, bunun ne olduğunu bilmeliler. bir GNU C kütüphanesi, yaygın olarak glibc olarak bilinen standart GNU C çalışma zamanı kitaplığıdır. Kullanıldığı sistemlerde bu C kütüphanesi sistem çağrılarını ve diğer temel işlevleri sağlar ve tanımlar, hemen hemen tüm programlar tarafından kullanılır.
Glibc 2.34'ün başlıca yeni özellikleri
Sunulan Glibc 2.34'ün bu yeni sürümünde libpthread, libdl, libutil ve libanl ana kütüphaneye entegre edildi, işlevselliğini uygulamalarda kullanmak artık bunların -lpthread, -ldl, -lutil ve -lanl bayraklarıyla bağlanmasını gerektirmez.
Ayrıca bundan bahsedilmektedir libreolv'u libc'ye entegre etmek için hazırlıklar yapıldı, hangi entegrasyon ile daha düzgün bir glibc güncelleme işlemine izin verecek ve çalışma zamanı uygulamasını basitleştirecek ve glibc'nin önceki sürümleriyle oluşturulmuş uygulamalarla uyumluluk için saplama kitaplıkları da sağlanmıştır.
Linux'a odaklanan değişiklikler kısmında Glibc 2.34 şunları vurgular: yapılandırmalarda 64 bit time_t türünü kullanma yeteneği eklendi geleneksel olarak time_t türünü kullanan 32 bit. Bu özellik yalnızca çekirdek 5.1 ve üzeri sistemlerde mevcuttur.
Linux için bir başka özel değişiklik ise, execveat işlevinin uygulanmasıO açık bir dosya tanımlayıcıdan yürütülebilir bir dosya çalıştırmaya izin verir. Yeni işlev, /proc sözde dosya sisteminin başlangıçta monte edilmesini gerektirmeyen fexecve çağrısının uygulanmasında da kullanılır.
İşlev de eklendi Linux 5.9 sürümleri için kullanılabilen close_range () ve daha yüksek ve hangisi olabilir bir işlemin bir dizi dosya tanımlayıcısını kapatmasına izin vermek için kullanılır aynı anda açın, ek olarak, pthread yığın önbelleğinin boyutunu ayarlamak için kullanılabilen glibc.pthread.stack_cache_size parametresi uygulanır.
Ayrıca, eklendi _Fork işlevi, bir yedek işlev için çatal "async-signal-safe" gereksinimlerini karşılayan, yani sinyal işleyicilerden güvenli bir şekilde çağrılabilir. _Fork yürütme sırasında, kilitleri veya dahili durumu değiştirebilen özellikleri çağırmadan, yükseltme ve yürütme gibi sinyal işleyicilerdeki işlevleri çağırmak için yeterli minimum bir ortam oluşturulur.
Glibc 2.34'te düzeltilen güvenlik açıklarının bir kısmı için aşağıdakilerden bahsedilmiştir:
CVE-2021-27645: nscd işlemi (ad sunucusu önbelleğe alma arka plan programı), özel hazırlanmış ağ grubu isteklerini işlerken ücretsiz işleve yapılan çift çağrı nedeniyle başarısız oldu.
CVE-2021-33574: alternatif bir CPU bağlama maskesinin ayarlandığı bir iş parçacığı özniteliği ile SIGEV_THREAD bildirim türünü kullanırken mq_notify işlevinde zaten serbest bırakılmış bir bellek alanına erişim (ücretsiz kullanım sonrası). Sorun bir çökmeye neden olabilir, ancak diğer saldırı seçenekleri hariç tutulmaz.
CVE-2021-35942: Wordexp işlevindeki parametre boyutu taşması uygulamayı kilitleyebilir.
Diğer değişikliklerden göze çarpan:
- Taslak ISO C2X standardında tanımlanan timespec_getres işlevi eklendi ve timespec_get işlevi, POSIX clock_getres işlevine benzer yeteneklerle artırıldı.
- gconv-modules dosyasında, yalnızca çok az sayıda ana gconv modülü kaldı ve geri kalanı gconv-modules.d dizininde bulunan ek bir gconv-modules-extra.conf dosyasına taşındı.
- Yüklenebilir paylaşılan nesneleri Glibc sürümüne bağlamak için sembolik bağların kullanımı kaldırıldı. Bu nesneler şimdi olduğu gibi kurulur (örn. libc.so.6 artık libc-2.34.so bağlantısından ziyade bir dosyadır).
- Linux'ta, shm_open ve sem_open gibi işlevler artık / dev / shm bağlama noktasına monte edilmiş paylaşılan bellek için bir dosya sistemi gerektirir.
Nihayet onun hakkında daha fazla bilgi edinmekle ilgileniyorsan bu yeni sürümün ayrıntılar aşağıdaki bağlantıda.