
AMD KFDにおける整数オーバーフローがヒープオーバーフローにつながる可能性
-- CVE-2024-26817
AMD KFD の以下のファイル drivers/gpu/drm/amd/amdkfd/kfd_chardev.c にセキュリティ脆弱性を発見しました。ioctl 識別子は AMDKFD_IOC_GET_PROCESS_APERTURES_NEW です。
関数 kfd_ioctl_get_process_apertures_new 内で、ユーザーから提供された args->num_of_nodes のデータが乗算され、そのまま kzalloc に渡されます。これにより、一部のプラットフォームで整数オーバーフローが発生する可能性があります。
その結果、小さなサイズが割り当てられ、同じ関数内の直後にヒープが破損するおそれがあります。
Linux カーネルにおいて、以下の脆弱性が修正されました。
amdkfd: 整数オーバーフローを回避するため、kzalloc の代わりに calloc を使用
これは、乗算(オーバーフローの可能性がある)を行わずに calloc を使用するものです。
Linux カーネル CVE チームは、この問題に CVE-2024-26817 を割り当てました。
4.19.312 で修正 (コミット e6721ea845fc)
5.4.274 で修正 (コミット 8b0564704255)
5.10.215 で修正 (コミット fcbd99b3c733)
5.15.155 で修正 (コミット cbac7de1d990)
6.1.86 で修正 (コミット e6768c6737f4)
6.6.27 で修正 (コミット 315eb3c2df7e)
6.8.6 で修正 (コミット 0c33d1115394)
現在サポートされているカーネルバージョンの完全な一覧については、https://www.kernel.org を参照してください。
影響を受けないバージョンは、修正が古いサポート対象バージョンにバックポートされるにつれて、時間の経過とともに変化する可能性があります。公式の CVE エントリ(https://cve.org/CVERecord/?id=CVE-2024-26817)は、修正がバックポートされた場合に更新されます。この問題に関する最新情報については、そちらを確認してください。
この問題の影響を受けるファイルは次のとおりです。 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
Linux カーネル CVE チームは、この問題および他の多くのバグ修正のために、最新の安定版カーネルバージョンに更新することを推奨します。個々の変更は単独でテストされることはなく、より大きなカーネルリリースの一部として扱われます。個別のコミットのチェリーピックは、Linux カーネルコミュニティでは推奨されておらず、サポートもされていません。ただし、最新リリースへの更新が不可能な場合、この問題を解決するための個別の変更は以下のコミットにあります。 https://git.kernel.org/stable/c/e6721ea845fcb93a764a92bd40f1afc0d6c69751 https://git.kernel.org/stable/c/8b0564704255c6b3c6a7188e86939f754e1577c0 https://git.kernel.org/stable/c/fcbd99b3c73309107e3be71f20dff9414df64f91 https://git.kernel.org/stable/c/cbac7de1d9901521e78cdc34e15451df3611f2ad https://git.kernel.org/stable/c/e6768c6737f4c02cba193a3339f0cc2907f0b86a https://git.kernel.org/stable/c/315eb3c2df7e4cb18e3eacfa18a53a46f2bf0ef7 https://git.kernel.org/stable/c/0c33d11153949310d76631d8f4a4736519eacd3a