Description
In the Linux kernel, the following vulnerability has been resolved: nilfs2: fix potential kernel bug due to lack of writeback flag waiting Destructive writes to a block device on which nilfs2 is mounted can cause a kernel bug in the folio/page writeback start routine or writeback end routine (__folio_start_writeback in the log below): kernel BUG at mm/page-writeback.c:3070! Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI ... RIP: 0010:__folio_start_writeback+0xbaa/0x10e0 Code: 25 ff 0f 00 00 0f 84 18 01 00 00 e8 40 ca c6 ff e9 17 f6 ff ff e8 36 ca c6 ff 4c 89 f7 48 c7 c6 80 c0 12 84 e8 e7 b3 0f 00 90 <0f> 0b e8 1f ca c6 ff 4c 89 f7 48 c7 c6 a0 c6 12 84 e8 d0 b3 0f 00 ... Call Trace: <TASK> nilfs_segctor_do_construct+0x4654/0x69d0 [nilfs2] nilfs_segctor_construct+0x181/0x6b0 [nilfs2] nilfs_segctor_thread+0x548/0x11c0 [nilfs2] kthread+0x2f0/0x390 ret_from_fork+0x4b/0x80 ret_from_fork_asm+0x1a/0x30 </TASK> This is because when the log writer starts a writeback for segment summary blocks or a super root block that use the backing device's page cache, it does not wait for the ongoing folio/page writeback, resulting in an inconsistent writeback state. Fix this issue by waiting for ongoing writebacks when putting folios/pages on the backing device into writeback state.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 to < 95f6f81e50d858a7c9aa7c795ec14a0ac3819118affected9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 to < a75b8f493dfc48aa38c518430bd9e03b53bffebeaffected9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 to < 0ecfe3a92869a59668d27228dabbd7965e83567faffected9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 to < 33900d7eae616647e179eee1c66ebe654ee39627affected9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 to < 271dcd977ccda8c7a26e360425ae7b4db7d2ecc0affected9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 to < 614d397be0cf43412b3f94a0f6460eddced8ce92affected9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 to < 1f3bff69f1214fe03a02bc650d5bbfaa6e65ae7daffected9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 to < a4ca369ca221bb7e06c725792ac107f0e48e82e7affected
Linux Linux
Default version status: affected
2.6.30affected0 to < 2.6.30unaffected4.19.317 to ≤ 4.19.*unaffected5.4.279 to ≤ 5.4.*unaffected5.10.221 to ≤ 5.10.*unaffected5.15.162 to ≤ 5.15.*unaffected6.1.95 to ≤ 6.1.*unaffected6.6.35 to ≤ 6.6.*unaffected6.9.5 to ≤ 6.9.*unaffected6.10 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/95f6f81e50d858a7c9aa7c795ec14a0ac3819118 ↗
- https://git.kernel.org/stable/c/a75b8f493dfc48aa38c518430bd9e03b53bffebe ↗
- https://git.kernel.org/stable/c/0ecfe3a92869a59668d27228dabbd7965e83567f ↗
- https://git.kernel.org/stable/c/33900d7eae616647e179eee1c66ebe654ee39627 ↗
- https://git.kernel.org/stable/c/271dcd977ccda8c7a26e360425ae7b4db7d2ecc0 ↗
- https://git.kernel.org/stable/c/614d397be0cf43412b3f94a0f6460eddced8ce92 ↗
- https://git.kernel.org/stable/c/1f3bff69f1214fe03a02bc650d5bbfaa6e65ae7d ↗
- https://git.kernel.org/stable/c/a4ca369ca221bb7e06c725792ac107f0e48e82e7 ↗
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html ↗