CVE-2024-42232

libceph: fix race between delayed_work() and ceph_monc_stop()

State
Published
Severity
9.8 Critical
Published
Aug 7, 2024
Updated
Aug 5, 2026
Reserved
Jul 30, 2024

Read the record on cve.org

Description

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

libceph: fix race between delayed_work() and ceph_monc_stop()

The way the delayed work is handled in ceph_monc_stop() is prone to races with mon_fault() and possibly also finish_hunting(). Both of these can requeue the delayed work which wouldn't be canceled by any of the following code in case that happens after cancel_delayed_work_sync() runs -- __close_session() doesn't mess with the delayed work in order to avoid interfering with the hunting interval logic. This part was missed in commit b5d91704f53e ("libceph: behave in mon_fault() if cur_mon < 0") and use-after-free can still ensue on monc and objects that hang off of it, with monc->auth and monc->monmap being particularly susceptible to quickly being reused.

To fix this:

- clear monc->cur_mon and monc->hunting as part of closing the session in ceph_monc_stop() - bail from delayed_work() if monc->cur_mon is cleared, similar to how it's done in mon_fault() and finish_hunting() (based on monc->hunting) - call cancel_delayed_work_sync() after the session is closed

Scores

CVSSScoreVectorSource
3.19.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 0e04dc26cc594d31ee6b1382b452b6bc83b57937 to before 1177afeca833174ba83504688eec898c6214f4bfAffected
  • 0e04dc26cc594d31ee6b1382b452b6bc83b57937 to before 63e5d035e3a7ab7412a008f202633c5e6a0a28eaAffected
  • 0e04dc26cc594d31ee6b1382b452b6bc83b57937 to before 34b76d1922e41da1fa73d43b764cddd82ac9733cAffected
  • 0e04dc26cc594d31ee6b1382b452b6bc83b57937 to before 20cf67dcb7db842f941eff1af6ee5e9dc41796d7Affected
  • 0e04dc26cc594d31ee6b1382b452b6bc83b57937 to before 2d33654d40a05afd91ab24c9a73ab512a0670a9aAffected
  • 0e04dc26cc594d31ee6b1382b452b6bc83b57937 to before 9525af1f58f67df387768770fcf6d6a8f23aee3dAffected
  • 0e04dc26cc594d31ee6b1382b452b6bc83b57937 to before 33d38c5da17f8db2d80e811b7829d2822c10625eAffected
  • 0e04dc26cc594d31ee6b1382b452b6bc83b57937 to before 69c7b2fe4c9cc1d3b1186d1c5606627ecf0de883Affected
LinuxLinux
  • 4.6Affected
  • before 4.6Not affected
  • 4.19.318 through 4.19.*Not affected
  • 5.4.280 through 5.4.*Not affected
  • 5.10.222 through 5.10.*Not affected
  • 5.15.163 through 5.15.*Not affected
  • 6.1.100 through 6.1.*Not affected
  • 6.6.41 through 6.6.*Not affected
  • 6.9.10 through 6.9.*Not affected
  • 6.10 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.