CVE-2026-31467

erofs: add GFP_NOIO in the bio completion if needed

State
Published
Severity
7.5 High
Published
Apr 22, 2026
Updated
Aug 5, 2026
Reserved
Mar 9, 2026

Read the record on cve.org

Description

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

erofs: add GFP_NOIO in the bio completion if needed

The bio completion path in the process context (e.g. dm-verity) will directly call into decompression rather than trigger another workqueue context for minimal scheduling latencies, which can then call vm_map_ram() with GFP_KERNEL.

Due to insufficient memory, vm_map_ram() may generate memory swapping I/O, which can cause submit_bio_wait to deadlock in some scenarios.

Trimmed down the call stack, as follows:

f2fs_submit_read_io submit_bio //bio_list is initialized. mmc_blk_mq_recovery z_erofs_endio vm_map_ram __pte_alloc_kernel __alloc_pages_direct_reclaim shrink_folio_list __swap_writepage submit_bio_wait //bio_list is non-NULL, hang!!!

Use memalloc_noio_{save,restore}() to wrap up this path.

Scores

CVSSScoreVectorSource
3.17.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 648f2de053a882c87c05f0060f47d3b11841fdbe to before d6565ea662e17d45a577184b0011bd69de22dc2bAffected
  • 648f2de053a882c87c05f0060f47d3b11841fdbe to before d9d8360cb66e3b599d89d2526e7da8b530ebf2ffAffected
  • 648f2de053a882c87c05f0060f47d3b11841fdbe to before 5c8ecdcfbfb0b0c6a82a4ebadc1ddea61609b902Affected
  • 648f2de053a882c87c05f0060f47d3b11841fdbe to before 378949f46e897204384f3f5f91e42e93e3f87568Affected
  • 648f2de053a882c87c05f0060f47d3b11841fdbe to before da40464064599eefe78749f75cd2bba371044c04Affected
  • 648f2de053a882c87c05f0060f47d3b11841fdbe to before e83e20b82859f0588e9a52a6fa9fea704a2061cfAffected
  • 648f2de053a882c87c05f0060f47d3b11841fdbe to before c23df30915f83e7257c8625b690a1cece94142a0Affected
LinuxLinux
  • 5.13Affected
  • before 5.13Not affected
  • 5.15.203 through 5.15.*Not affected
  • 6.1.168 through 6.1.*Not affected
  • 6.6.131 through 6.6.*Not affected
  • 6.12.80 through 6.12.*Not affected
  • 6.18.21 through 6.18.*Not affected
  • 6.19.11 through 6.19.*Not affected
  • 7.0 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.