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

CVE-2024-42232
CRITICAL 9.8

En bref

Source
NVD
EPSS
EPSS 0.76 % · centile 55 ()
État
PUBLISHED
Publiée
Mise à jour
Attribuée par
Linux
Statut NVD
Modified

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

Faiblesses (CWE)

  • CWE-416 — Utilisation après libération

Références

Scores

VersionScoreVecteurÉvalué par
CVSS 3.1CRITICAL 9.8CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux
CVSS 3.1CRITICAL 9.8CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HNVD · 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary)
CVSS 3.1MEDIUM 5.5CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HNVD · nvd@nist.gov (Primary)

Références européennes

Avis du CERT-FR

Configurations affectées (CPE NVD)

Produits affectés

ProduitVersions
Linux · Linuxaffected 0e04dc26cc594d31ee6b1382b452b6bc83b57937 < 1177afeca833174ba83504688eec898c6214f4bf ; affected 0e04dc26cc594d31ee6b1382b452b6bc83b57937 < 63e5d035e3a7ab7412a008f202633c5e6a0a28ea ; affected 0e04dc26cc594d31ee6b1382b452b6bc83b57937 < 34b76d1922e41da1fa73d43b764cddd82ac9733c ; affected 0e04dc26cc594d31ee6b1382b452b6bc83b57937 < 20cf67dcb7db842f941eff1af6ee5e9dc41796d7 ; affected 0e04dc26cc594d31ee6b1382b452b6bc83b57937 < 2d33654d40a05afd91ab24c9a73ab512a0670a9a ; affected 0e04dc26cc594d31ee6b1382b452b6bc83b57937 < 9525af1f58f67df387768770fcf6d6a8f23aee3d
Linux · Linuxaffected 4.6 ; unaffected 0 < 4.6 ; unaffected 4.19.318 ≤ 4.19.* ; unaffected 5.4.280 ≤ 5.4.* ; unaffected 5.10.222 ≤ 5.10.* ; unaffected 5.15.163 ≤ 5.15.*

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD