製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
Title LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました:bpfのfork時に発生するarena_vm_closeにおけるuse-after-freeの問題です。arena_vm_open()はvml-mmap_countを増加させるだけで、子VMAをarena-vma_listに登録しません。vml-vmaは常に親VMAを指しているため、親がmunmapした後、そのポインタはダングリング状態になります。もし子がbpf_arena_free_pages()を呼ぶと、zap_pages()は古いvml-vmaを読み取り、use-after-freeを引き起こします。本問題は、VM_DONTCOPYを使用してarena VMAがfork時に継承されないようにし、may_splitコールバックによってVMAの分割も防止することで修正されました。また、.mremapコールバックが-EINVALを返すmremapも拒否します。full arena VMAに対する同サイズのmremap(MREMAP_FIXED)は次の経路でcopy_vma()に到達します。check_prep_vma()はnew_len == old_lenのときに早期に0を返し、VM_DONTEXPANDチェックをスキップします。prep_move_vma()ではvm_startがold_addrかつvm_endがold_addr + old_lenのため、may_splitは呼ばれません。move_vma()の中でcopy_vma_and_data()、copy_vma()、vm_area_dup()が実行され、vm_private_data(vmlポインタ)がコピーされ、vm_ops-open()でvml-mmap_countが増加します。vm_ops-mremap()は-EINVALを返し、ロールバックとして新しいVMAをアンマップします。リファレンスカウントにより、ロールバック時のarena_vm_closeは元のVMAと共有されているvmlを解放しません。

Possible impacts ・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアが完全に停止する可能性があります。 
Solution

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

Publication Date May 27, 2026, midnight
Registration Date June 29, 2026, 11:17 a.m.
Last Update June 29, 2026, 11:17 a.m.
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
Affected System
Linux
Linux Kernel 6.13 以上 6.18.30 未満
Linux Kernel 6.19 以上 7.0.7 未満
Linux Kernel 6.9 以上 6.12.88 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年06月29日]
  掲載
June 29, 2026, 11:17 a.m.

NVD Vulnerability Information
CVE-2026-45837
Summary

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

bpf: Fix use-after-free in arena_vm_close on fork

arena_vm_open() only bumps vml->mmap_count but never registers the
child VMA in arena->vma_list. The vml->vma always points at the
parent VMA, so after parent munmap the pointer dangles. If the child
then calls bpf_arena_free_pages(), zap_pages() reads the stale
vml->vma triggering use-after-free.

Fix this by preventing the arena VMA from being inherited across
fork with VM_DONTCOPY, and preventing VMA splits via the may_split
callback.

Also reject mremap with a .mremap callback returning -EINVAL. A
same-size mremap(MREMAP_FIXED) on the full arena VMA reaches
copy_vma() through the following path:

check_prep_vma() - returns 0 early: new_len == old_len
skips VM_DONTEXPAND check
prep_move_vma() - vm_start == old_addr and
vm_end == old_addr + old_len
so may_split is never called
move_vma()
copy_vma_and_data()
copy_vma()
vm_area_dup() - copies vm_private_data (vml pointer)
vm_ops->open() - bumps vml->mmap_count
vm_ops->mremap() - returns -EINVAL, rollback unmaps new VMA

The refcount ensures the rollback's arena_vm_close does not free
the vml shared with the original VMA.

Publication Date May 27, 2026, 8:16 p.m.
Registration Date May 28, 2026, 4:10 a.m.
Last Update May 27, 2026, 11:48 p.m.
Related information, measures and tools
Common Vulnerabilities List