Glibc 2.32 システム ライブラリのリリース

XNUMXか月の開発期間を経て 公開済み システムライブラリのリリース GNU Cライブラリ (glibc) 2.32、ISO C11 および POSIX.1-2017 の要件に完全に準拠しています。 新しいリリースには、67 人の開発者による修正が含まれています。

Glibc 2.32で実装 改善 あなたは注意することができます:

  • Synopsys ARC HS (ARCv2 ISA) プロセッサのサポートが追加されました。 このポートを実行するには、少なくとも binutils 2.32、gcc 8.3、および Linux カーネル 5.1 が必要です。 arc-linux-gnu、arc-linux-gnuhf、arceb-linux-gnu (ビッグエンディアン) の XNUMX つの ABI バリアントがサポートされています。
  • セクション DT_AUDIT およびセクションで指定された監査モジュールのロード
    実行可能ファイルの DT_DEPAUDIT。

  • powerpc64le アーキテクチャでは、IEEE128 long double 型のサポートが実装されており、これは「-mabi=ieeelongdouble」オプションを使用してビルドするときに有効になります。
  • 一部の API には GCC の「access」属性の注釈が付けられており、GCC 10 でコンパイルしたときに、バッファ オーバーフローやその他の範囲外のシナリオの可能性を検出するために、より適切な警告を生成できるようになります。
  • Linux システムの場合、関数 pthread_attr_setsigmask_np および
    pthread_attr_getsigmask_np は、アプリケーションが pthread_create を使用して作成されたスレッドのシグナル マスクを指定できるようにします。

  • Unicode 13.0.0 仕様をサポートするために、エンコード データ、文字タイプ情報、および音訳テーブルが更新されました。
  • 新しいヘッダー ファイルを追加しました__libc_single_threaded 変数を定義します。この変数は、アプリケーションでシングルスレッドの最適化に使用できます。
  • シグナルの短縮名と説明 (たとえば、SIGHUP の「HUP」と「Hangup」) を返す関数 sigabbrev_np および sigdescr_np を追加しました。
  • エラーの名前と説明 (たとえば、EINVAL の場合は「EINVAL」と「無効な引数」) を返す関数 strerrorname_np および strerrordesc_np を追加しました。
  • ARM64 プラットフォームの場合、「--enable-standard-branch-protection」フラグ (GCC では -mbranch-protection=standard) が追加されました。これにより、ARMv8.5-BTI (ブランチ ターゲット インジケータ) メカニズムが有効になり、実行すべきではない命令セットの実行 分岐遷移。 コードの任意のセクションへの遷移のブロックは、リターン指向プログラミング手法 (ROP - リターン指向プログラミング、攻撃者はコードをメモリに配置しようとせず、既存の部分を操作する) を使用するエクスプロイトでガジェットが作成されるのを防ぐために実装されています。戻り制御命令で終わる一連の機械命令。そこから呼び出しのチェーンが構築され、必要な機能が得られます。)
  • 「--enable-obsolete-rpc」および「--enable-obsolete-nsl」オプション、ヘッダー ファイルの削除など、古い機能の大規模なクリーンアップが実行されました。 。 関数 sstk、siginterrupt、sigpause、sighold、sigrelse、sigignore、sigset、配列 sys_siglist、_sys_siglist、sys_sigabbrev、シンボル sys_errlist、_sys_errlist、sys_nerr、_sys_nerr、および NSS モジュール hesiod は非推奨になりました。
  • ldconfig は、glibc で約 20 年間サポートされている新しい ld.so.cache 形式を使用するようにデフォルトで移行されました。
  • 修正された脆弱性:
    • CVE-2016-10228 – 不正なマルチバイト データを処理するときに「-c」オプションを使用して実行すると、iconv ユーティリティでループが発生します。
    • CVE-2020-10029 疑似 null 引数を使用して三角関数を呼び出すとスタックが破損します。
    • CVE-2020-1752 - パス内のホーム ディレクトリ (「~user」) への参照を展開するときの、glob 関数での解放後のメモリ アクセス。
    • CVE-2020-6096 – コピー領域のサイズを決定する memcpy() および memmove() の負のパラメーター値の ARMv7 プラットフォームでの処理が正しくありません。 許可します memcpy() および memmove() 関数で特定の方法でフォーマットされたデータを処理する際のコード実行を整理します。 問題が重要なのは、 残った 情報が公開されてからほぼ XNUMX か月間、Glibc 開発者に通知されてから XNUMX か月間修正されませんでした。

出所: オープンネット.ru

コメントを追加します