Glibc 2.40 系統庫發布

經過六個月的開發,GNU C Library (glibc) 2.40系統庫已經發布,完全符合ISO C11和POSIX.1-2017標準的要求。 新版本包含 68 名開發人員的修復。

Glibc 2.40 中實作的一些改進包括:

  • C23 標準中定義的新指數和對數函數已新增至 math.h 頭檔:exp2m1、exp10m1.log2p1、log10p1 和 logp1。這些函數有 float、double、long double、_FloatN 和 _FloatNx 類型的變體。
  • 新增了 _ISOC23_SOURCE 宏,指定使用 C23 標準中提出的功能(目前 Glibc 中僅實作了 C23 功能的子集)。也可以在編譯時透過向 GCC 指定 -std=c23、-std=gnu23、-std=c23x 或 -std=gnu2x 選項來啟用 C2 的使用。
  • 添加了“glibc.rtld.enable_secure”設置,允許程式在測試期間運行,就好像它具有用戶標識符更改標誌(setuid)一樣。
  • 在Linux平台上,epoll.h頭檔已更新,以支援Linux 6.9核心中引入的新ioctls和epoll結構。
  • 用於檢測在執行字串操作和記憶體管理函數(“_FORTIFY_SOURCE”)期間可能出現的緩衝區溢位和安全相關錯誤的功能已經適應使用 Clang 編譯器建立 Glibc。
  • 具有向量數學函數的函式庫(libmvec)為 Aarch64 架構提供了函數 acosh、asinh、atanh、cbrt、cosh、erf、erfc、hypot、pow、sinh 和 tanh 的實作。
  • 在 x86 系統上,memset 函數現在提供禁用臨時緩衝區的功能,以加快寫入大型資料集的速度。使用“x86_memset_non_temporal_threshold”設定啟用最佳化。
  • 當使用 GCC 14 支援 __int128 和 _BitInt(N) 類型的操作數時,stdbit.h 頭檔中與不同類型(類型通用)一起使用的巨集已切換為使用 __builtin_stdc_bit_ceil 內建函數。
  • lastlog、utmp 和 utmpx 結構中的紀元時間計數器欄位已從使用 32 位元有符號類型移至無符號類型,從而允許計數器尋址的最大時間從 2038 擴展到 2106。
  • 已修復的漏洞:
    • CVE-2024-2961 - 使用 iconv() 轉換特製的 ISO-2022-CN-EXT 字串時發生緩衝區溢位。實際上,該漏洞可用於遠端攻擊 PHP 應用程序,從而導致程式碼執行。
    • CVE-2024-33599 - nscd(名稱服務快取守護程式)程序中的網路群組快取處理代碼存在緩衝區溢位。客戶端可以透過發送特製的請求來利用此漏洞。
    • CVE-2024-33600 - nscd 進程中的空指標取消引用可能會導致處理某些請求時崩潰。
    • CVE-2024-33601 - 處理網路群組快取時的錯誤可能導致 nscd 進程因記憶體分配失敗而崩潰。
    • CVE-2024-33602 - 處理 nscd 中的網路群組快取時發生記憶體損壞。

    來源: opennet.ru

添加評論