製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける不特定の脆弱性
Title LinuxのLinux Kernelにおける不特定の脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。cephに関するページ配列の配置エラーがバッチエラーとして伝播しないように修正されました。fscryptが有効な場合、move_dirty_folio_in_page_array()は各フォリオの暗号化バージョンを格納するためのバウンスバッファを割り当てる必要があるため、失敗することがあります。最初のフォリオ以降の各フォリオはGFP_NOWAITでバウンスバッファを割り当てます。この割り当てモードでは失敗が一般的かつ予想されており、それらの失敗はバッチを中断せずにフラッシュすべきです。しかし、ceph_process_folio_batch()は自身の戻り値と呼び出しルーチンの戻り値の両方に同じ`rc`変数を使っているため、`rc`を0にリセットしないとエラーがメインの書き戻しループに伝播し、このループはここでのエラーを許容できません。`ceph_wbc.pages`が割り当てられた後は、必ずceph_submit_write()に渡して解放しなければなりません。もし次のイテレーションまで存続すると(例えばgoto文によって)、ceph_allocate_page_array()のBUG_ON()がワーカーをクラッシュさせます。この失敗モードは現在、同じ書き込みで複数の暗号化フォリオが選択されるのを防ぐ別のバグ(この修正シリーズで次に対応)があるためマスクされています。現在はフォリオを再度dirtyにするときに`rc`をリセットすることで、move_dirty_folio_in_page_array()のエラー伝播を防いでいます。move_dirty_folio_in_page_array()は最初のフォリオでエラーを返さないように慎重に設計されているため、その部分をチェックする必要はありません。この変更後、ceph_process_folio_batch()はエラーを返さなくなり、唯一残る障害指標は`locked_pages == 0`のみであり、呼び出し側はすでにこれを正しく処理しています。

Possible impacts 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
Solution

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

Publication Date May 6, 2026, midnight
Registration Date May 13, 2026, 10:23 a.m.
Last Update May 13, 2026, 10:23 a.m.
CVSS3.0 : 警告
Score 5.5
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Affected System
Linux
Linux Kernel 6.15 以上 6.18.16 未満
Linux Kernel 6.19 以上 6.19.6 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年05月13日]
  掲載
May 13, 2026, 10:23 a.m.

NVD Vulnerability Information
CVE-2026-43188
Summary

In the Linux kernel, the following vulnerability has been resolved:

ceph: do not propagate page array emplacement errors as batch errors

When fscrypt is enabled, move_dirty_folio_in_page_array() may fail
because it needs to allocate bounce buffers to store the encrypted
versions of each folio. Each folio beyond the first allocates its bounce
buffer with GFP_NOWAIT. Failures are common (and expected) under this
allocation mode; they should flush (not abort) the batch.

However, ceph_process_folio_batch() uses the same `rc` variable for its
own return code and for capturing the return codes of its routine calls;
failing to reset `rc` back to 0 results in the error being propagated
out to the main writeback loop, which cannot actually tolerate any
errors here: once `ceph_wbc.pages` is allocated, it must be passed to
ceph_submit_write() to be freed. If it survives until the next iteration
(e.g. due to the goto being followed), ceph_allocate_page_array()'s
BUG_ON() will oops the worker.

Note that this failure mode is currently masked due to another bug
(addressed next in this series) that prevents multiple encrypted folios
from being selected for the same write.

For now, just reset `rc` when redirtying the folio to prevent errors in
move_dirty_folio_in_page_array() from propagating. Note that
move_dirty_folio_in_page_array() is careful never to return errors on
the first folio, so there is no need to check for that. After this
change, ceph_process_folio_batch() no longer returns errors; its only
remaining failure indicator is `locked_pages == 0`, which the caller
already handles correctly.

Publication Date May 6, 2026, 9:16 p.m.
Registration Date May 7, 2026, 4:08 a.m.
Last Update May 12, 2026, 5:38 a.m.
Affected software configurations
Configuration1 or higher or less more than less than
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.15 6.18.16
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 6.19.6
Related information, measures and tools
Common Vulnerabilities List