Entreprise d'experts en Sécurité Informatique : Audits et conseils en cybersécurité
Entreprise française de cybersécurité depuis 2004
☎ 03 60 47 09 81 - info@securiteinfo.com


CVE-2024-42232

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 toraces with mon_fault() and possibly also finish_hunting(). Both ofthese can requeue the delayed work which wouldn't be canceled by any ofthe following code in case that happens after cancel_delayed_work_sync()runs -- __close_session() doesn't mess with the delayed work in orderto avoid interfering with the hunting interval logic. This part wasmissed in commit b5d91704f53e ("libceph: behave in mon_fault() ifcur_mon < 0") and use-after-free can still ensue on monc and objectsthat hang off of it, with monc->auth and monc->monmap beingparticularly 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

POC

Reference

No PoCs from references.

Github

- https://github.com/fkie-cad/nvd-json-data-feeds