debugobjects: Plug race against a concurrent OOM disable (Linux Linux)

CVE-2026-68090
Non disponible

En bref

Source
NVD
EPSS
EPSS 0.18 % · centile 7 ()
État
PUBLISHED
Publiée
Mise à jour
Attribuée par
Linux
Statut NVD
Received

Description

In the Linux kernel, the following vulnerability has been resolved: debugobjects: Plug race against a concurrent OOM disable syzbot reported a puzzling splat: WARNING: kernel/time/hrtimer.c:443 at stub_timer+0xa/0x20 stub_timer() is installed as timer callback function in hrtimer_fixup_assert_init(), which is invoked when debug_object_assert_init() can't find a shadow object. In that case debug objects emits a warning about it before invoking the fixup. Though the provided console log lacks this warning and instead has the following a few seconds before the splat: ODEBUG: Out of memory. ODEBUG disabled So the object was looked up in debug_object_assert_init() and the lookup failed due a concurrent out of memory situation which disabled debug objects and freed the shadow objects: debug_object_assert_init() if (!debug_objects_enabled) return; obj = alloc(); if (!obj) { // Out of memory debug_objects_enabled = false; free_objects(); obj = lookup_or_alloc(); // The lookup failed because the other side // removed the objects, so this returns // an error code as the object in question // is not statically initialized if (!IS_ERR_OR_NULL(obj)) return; if (!obj) { debug_oom(); return; } print(...) if (!debug_objects_enabled) return; fixup(...) The debug object splat is skipped because debug_objects_enabled is false, but the fixup callback is invoked unconditionally, which makes the timer disfunctional. This is only a problem in debug_object_assert_init() and debug_object_activate() as both have to handle statically initialized objects and therefore must handle the error pointer return case gracefully. All other places only handle the found/not found case and the NULL pointer return is a signal for OOM. Otherwise they get a valid shadow object. Plug the hole by checking whether debug objects are still enabled before invoking the print and fixup function in those two places.

Références

Références européennes

Avis du CERT-FR

Produits affectés

ProduitVersions
Linux · Linuxaffected b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 < 2d5e320b7ab9b25229ac4331541964a58b5e1d29 ; affected b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 < 203a965bf2ab43130778d8214fb0c3c8c2d19cdf ; affected b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 < 23da32e88627e63e0864f59f4c63a2dc0ab851a3 ; affected b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 < d663fbf28b2eebe665bb9cf828d7d528e5a8707e ; affected b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 < e2e255d07723c330dded8e576ce28a8d23a692ce ; affected b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 < c00164c9e7fa6145886ad666806cb5347895de5c
Linux · Linuxaffected 3.3 ; unaffected 0 < 3.3 ; unaffected 5.10.261 ≤ 5.10.* ; unaffected 5.15.212 ≤ 5.15.* ; unaffected 6.1.178 ≤ 6.1.* ; unaffected 6.6.145 ≤ 6.6.*

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