CVE-2024-38582

nilfs2: fix potential hang in nilfs_detach_log_writer()

Medium · published June 19, 2024

CVSS v3.1
5.3
EPSS
1%
Percentile
58.1
In the wild
Unconfirmed
What it is

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

nilfs2: fix potential hang in nilfs_detach_log_writer()

Syzbot has reported a potential hang in nilfs_detach_log_writer() called

during nilfs2 unmount.

Analysis revealed that this is because nilfs_segctor_sync(), which

synchronizes with the log writer thread, can be called after

nilfs_segctor_destroy() terminates that thread, as shown in the call trace

below:

nilfs_detach_log_writer

nilfs_segctor_destroy

nilfs_segctor_kill_thread --> Shut down log writer thread

flush_work

nilfs_iput_work_func

nilfs_dispose_list

iput

nilfs_evict_inode

nilfs_transaction_commit

nilfs_construct_segment (if inode needs sync)

nilfs_segctor_sync --> Attempt to synchronize with

log writer thread

*** DEADLOCK ***

Fix this issue by changing nilfs_segctor_sync() so that the log writer

thread returns normally without synchronizing after it terminates, and by

forcing tasks that are already waiting to complete once after the thread

terminates.

The skipped inode metadata flushout will then be processed together in the

subsequent cleanup work in nilfs_segctor_destroy().

The record
Technical detail
CVSS v3.1
5.3 · MEDIUM
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
CVSS v4.0
Not supplied
EPSS
0.00861 · 58.1th percentile
Published
2024-06-19T13:37Z
EPSS history
Timeline
  • 19 JUN 13:37Z
    nilfs2: fix potential hang in nilfs_detach_log_writer()
    cvelistv5