| Title | LinuxのLinux Kernelにおける不特定の脆弱性 |
|---|---|
| Summary | Linuxカーネルにおいて、以下の脆弱性が修正されました。drm/amdkfd の debug address watch v2 における watch_id の範囲チェックが改善されました。アドレスウォッチのクリアコードは watch_id を符号なし値(u32)として受け取りますが、一部の補助関数が符号付き int を使用し、watch_id のシフトによるビットチェックを行っていました。非常に大きな watch_id がユーザースペースから渡された場合、それが負の値に変換され、不正なシフトが発生し、watch_points 配列の範囲外メモリにアクセスする可能性がありました。修正内容としては、watch_id を使用する前に MAX_WATCH_ADDRESSES 内にあることをチェックし、ビットのテストとクリアには BIT(watch_id) を用いて安全に処理するようにしました。これにより、有効な watch ID では動作が変更されず、不正な ID に対する未定義動作を回避できます。問題の修正対象は、drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_debug.c の kfd_dbg_trap_clear_dev_address_watch() 関数(448行目)で発生していたバッファオーバーフローです。kfd_dbg_owns_dev_watch_id() は負の値をチェックしなかったため、watch_id が INT_MAX を超えるとバッファオーバーフローが発生しました(負のシフトは未定義動作となります)。v2 では Jonathan Kim による修正として、セットパスに早期の watch_id = MAX_WATCH_ADDRESSES バリデーションを追加し、クリアパスと一致させました。また、kfd_dbg_owns_dev_watch_id() 内の冗長な範囲チェックを削除しました。 |
| Possible impacts | ・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアが完全に停止する可能性があります。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | May 27, 2026, midnight |
| Registration Date | June 26, 2026, noon |
| Last Update | June 26, 2026, noon |
| CVSS3.0 : 重要 | |
| Score | 7.8 |
|---|---|
| Vector | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Linux |
| Linux Kernel 6.13 以上 6.18.14 未満 |
| Linux Kernel 6.19 以上 6.19.4 未満 |
| Linux Kernel 6.5 以上 6.6.128 未満 |
| Linux Kernel 6.7 以上 6.12.75 未満 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年06月26日] 掲載 |
June 26, 2026, noon |
| Summary | In the Linux kernel, the following vulnerability has been resolved: drm/amdkfd: Fix watch_id bounds checking in debug address watch v2 The address watch clear code receives watch_id as an unsigned value If a very large watch_id is passed from userspace, it can be converted drm/amdkfd: Fix watch_id bounds checking in debug address watch v2 Fix this by checking that watch_id is within MAX_WATCH_ADDRESSES before This keeps the behavior unchanged for valid watch IDs and avoids Fixes the below: drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_debug.c kfd_dbg_owns_dev_watch_id() doesn't check for negative values so if 439 return -EINVAL; v2: (as per, Jonathan Kim) |
|---|---|
| Publication Date | May 27, 2026, 11:17 p.m. |
| Registration Date | May 28, 2026, 4:11 a.m. |
| Last Update | May 30, 2026, 8:17 p.m. |