| タイトル | LinuxのLinux Kernelにおける不特定の脆弱性 |
|---|---|
| 概要 | Linuxカーネルにおいて、以下の脆弱性が修正されました:x86-64で誤解を招く名前だった "__copy_user_nocache()" 関数の名称を変更しました。この関数は歴史的な理由から非常に不適切な名前が付けられていました。この関数は非キャッシュのユーザーコピーを謳っていましたが、実際にはそうではありません。宛先に対してのみ非順序的ストア(ソースには適用されません)を使用し、ソースと宛先のアクセス例外処理を行う特殊なメモリコピー処理ルーチンです。また、アライメントが取れていない宛先に対しては動作しますが、アライメントの取れていない部分(先頭や末尾)はx86ではワードまたはクアッドワードのみが非順序的になるため、非順序的ストアは使われません。例外処理を行うため、ユーザースペースアクセスに使用可能ですが、単独では使用できず、通常の "ユーザースペースアクセス開始" のロジックが必要です。通常、ユーザースペースアクセスはソースであり、非順序的ストアは宛先に使用されます。当初の意図は、マシンチェック例外を同期的に検出し優雅に処理する必要がある脆弱な永続メモリ宛先に対して非順序的ストアを行うことでした。そのため、この説明のない名前が付けられました。ユースケースの一つとしては、ユーザースペースから非キャッシュカーネルバッファへのコピーがありました。ただし、実際の使用者はこの意図されたケースとパフォーマンス向上のためにこの処理を使った異なるドライバーの混在でした。そのいくつかのドライバーはユーザーコピー版(STAC/CLAC含む)を例外処理を気にせずに非順序的宛先だけのために誤用していました。この問題に対し、まず名前をより適切に変更し、プロトタイプもより標準的に変更しました:呼び出し側が適切な変換を行っていない限りユーザーポインタは渡されず、引数のサイズは完全なsize_t型に変更しました(実際には一度に4GB以上コピーしませんが、引数のサイズをサイレントで切り捨てる理由はありません)。最後に、この正しく名前変更された関数をNTBコードで使用しました。NTBコードはこのインターフェースのユーザーコピー版(STAC/CLAC含む)を実際のユーザーコピーでないにもかかわらず誤用していました。 |
| 想定される影響 | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| 対策 | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| 公表日 | 2026年5月5日0:00 |
| 登録日 | 2026年5月28日14:41 |
| 最終更新日 | 2026年5月28日14:41 |
| CVSS3.0 : 警告 | |
| スコア | 5.5 |
|---|---|
| ベクター | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| Linux |
| Linux Kernel 4.2 |
| Linux Kernel 4.2.1 以上 6.12.83 未満 |
| Linux Kernel 6.13 以上 6.18.24 未満 |
| Linux Kernel 6.19 以上 6.19.14 未満 |
| Linux Kernel 7.0 以上 7.0.1 未満 |
| No | 変更内容 | 変更日 |
|---|---|---|
| 1 | [2026年05月28日] 掲載 |
2026年5月28日14:41 |
| 概要 | In the Linux kernel, the following vulnerability has been resolved: x86-64: rename misleadingly named '__copy_user_nocache()' function This function was a masterclass in bad naming, for various historical It claimed to be a non-cached user copy. It is literally _neither_ of Also note that while it works for unaligned targets, any unaligned parts The exception handling means that it _can_ be used for user space But typically the user space access would be the source, not the Thus that non-descriptive name: one use case was to copy from user space Some of those random drivers then actively misused the user copying Rename it as a first small step to actually make it halfway sane, and Finally, use this now sanely named function in the NTB code, which |
|---|---|
| 公表日 | 2026年5月6日1:16 |
| 登録日 | 2026年5月6日4:07 |
| 最終更新日 | 2026年5月6日22:08 |