製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける到達可能なアサーションに関する脆弱性
Title LinuxのLinux Kernelにおける到達可能なアサーションに関する脆弱性
Summary

Linuxカーネルにおいて、匿名inode上のファイルに対する透明巨大ページ(THP)の処理に問題がありました。file_thp_enabled()関数は、例えばguest_memfdやsecretmemのような匿名inode上のファイルに対して誤ってTHPを許可していました。これらのファイルはalloc_file_pseudo()を介して作成され、通常の書き込みアクセスカウントが増加しないため、本来THPの対象外であるべきですが、誤って読み取り専用の通常ファイルとして認識されてしまっていました。この誤認により、khugepagedやMADV_COLLAPSE機能が無効とすべき動作をしてしまい、guest_memfdではカーネル内で警告が発生し、secretmemではカーネルクラッシュや誤ったメモリ障害報告が引き起こされる可能性がありました。修正としてfile_thp_enabled()にIS_ANON_FILE(inode)のチェックを追加し、すべての匿名inodeファイルに対してTHPを拒否するように変更しました。

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

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

Publication Date March 25, 2026, midnight
Registration Date April 27, 2026, 10:54 a.m.
Last Update April 27, 2026, 10:54 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.13 以上 6.18.17 未満
Linux Kernel 6.19 以上 6.19.7 未満
Linux Kernel 6.8
Linux Kernel 6.8.1 以上 6.12.78 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年04月27日]
  掲載
April 27, 2026, 10:54 a.m.

NVD Vulnerability Information
CVE-2026-23375
Summary

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

mm: thp: deny THP for files on anonymous inodes

file_thp_enabled() incorrectly allows THP for files on anonymous inodes
(e.g. guest_memfd and secretmem). These files are created via
alloc_file_pseudo(), which does not call get_write_access() and leaves
inode->i_writecount at 0. Combined with S_ISREG(inode->i_mode) being
true, they appear as read-only regular files when
CONFIG_READ_ONLY_THP_FOR_FS is enabled, making them eligible for THP
collapse.

Anonymous inodes can never pass the inode_is_open_for_write() check
since their i_writecount is never incremented through the normal VFS
open path. The right thing to do is to exclude them from THP eligibility
altogether, since CONFIG_READ_ONLY_THP_FOR_FS was designed for real
filesystem files (e.g. shared libraries), not for pseudo-filesystem
inodes.

For guest_memfd, this allows khugepaged and MADV_COLLAPSE to create
large folios in the page cache via the collapse path, but the
guest_memfd fault handler does not support large folios. This triggers
WARN_ON_ONCE(folio_test_large(folio)) in kvm_gmem_fault_user_mapping().

For secretmem, collapse_file() tries to copy page contents through the
direct map, but secretmem pages are removed from the direct map. This
can result in a kernel crash:

BUG: unable to handle page fault for address: ffff88810284d000
RIP: 0010:memcpy_orig+0x16/0x130
Call Trace:
collapse_file
hpage_collapse_scan_file
madvise_collapse

Secretmem is not affected by the crash on upstream as the memory failure
recovery handles the failed copy gracefully, but it still triggers
confusing false memory failure reports:

Memory failure: 0x106d96f: recovery action for clean unevictable
LRU page: Recovered

Check IS_ANON_FILE(inode) in file_thp_enabled() to deny THP for all
anonymous inode files.

Summary

En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:

mm: thp: denegar THP para archivos en inodos anónimos

file_thp_enabled() permite incorrectamente THP para archivos en inodos anónimos (por ejemplo, guest_memfd y secretmem). Estos archivos se crean a través de alloc_file_pseudo(), que no llama a get_write_access() y deja inode->i_writecount en 0. Combinado con que S_ISREG(inode->i_mode) sea verdadero, aparecen como archivos regulares de solo lectura cuando CONFIG_READ_ONLY_THP_FOR_FS está habilitado, haciéndolos elegibles para el colapso de THP.

Los inodos anónimos nunca pueden pasar la verificación inode_is_open_for_write() ya que su i_writecount nunca se incrementa a través de la ruta de apertura VFS normal. Lo correcto es excluirlos por completo de la elegibilidad para THP, ya que CONFIG_READ_ONLY_THP_FOR_FS fue diseñado para archivos de sistemas de archivos reales (por ejemplo, bibliotecas compartidas), no para inodos de pseudo-sistemas de archivos.

Para guest_memfd, esto permite a khugepaged y MADV_COLLAPSE crear folios grandes en la caché de páginas a través de la ruta de colapso, pero el gestor de fallos de guest_memfd no soporta folios grandes. Esto activa WARN_ON_ONCE(folio_test_large(folio)) en kvm_gmem_fault_user_mapping().

Para secretmem, collapse_file() intenta copiar el contenido de la página a través del mapa directo, pero las páginas de secretmem se eliminan del mapa directo. Esto puede resultar en un fallo del kernel:

BUG: unable to handle page fault for address: ffff88810284d000
RIP: 0010:memcpy_orig+0x16/0x130
Call Trace:
collapse_file
hpage_collapse_scan_file
madvise_collapse

Secretmem no se ve afectado por el fallo en upstream ya que la recuperación de fallos de memoria maneja la copia fallida con elegancia, pero aún así activa informes confusos de falsos fallos de memoria:

Memory failure: 0x106d96f: recovery action for clean unevictable
LRU page: Recovered

Verificar IS_ANON_FILE(inode) en file_thp_enabled() para denegar THP para todos los archivos de inodos anónimos.

Publication Date March 25, 2026, 8:16 p.m.
Registration Date April 27, 2026, 12:19 p.m.
Last Update April 25, 2026, 1:31 a.m.
Affected software configurations
Configuration1 or higher or less more than less than
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.8.1 6.12.78
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 6.18.17
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 6.19.7
cpe:2.3:o:linux:linux_kernel:6.8:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:*
Related information, measures and tools
Common Vulnerabilities List