Linuxカーネルでは、fs: ファイルディスクリプタテーブルの割り当てがINT_MAXを超えないように防止する脆弱性が修正されました。sysctl_nr_openがsystemdによって非常に高い値(例:1073741816)に設定された場合、プロセスがこの制限に近いファイルディスクリプタ数を使用しようとすると、割り当てサイズがINT_MAX(2,147,483,647)を超えてしまい、カーネルでメモリ割り当ての警告が発生することがありました。この問題はmm/slub.cで警告として出力されていました。systemdの設定が大きな値を許容したためにこの問題が発生しましたが、実際にはこの割り当ては必ず失敗するため、現実的なリスクは限定的でした。今回の修正によって、alloc_fdtable()で割り当てサイズがINT_MAXを超えないように事前チェックを追加し、過剰な割り当て要求を防ぐことで、意図せず大規模な割り当てやカーネル警告が発生しないようになりました。
|