0.0
NA
CVE-2026-68090
debugobjects: Plug race against a concurrent OOM disable
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.

INFO

Published Date :

Aug. 10, 2026, 12:17 p.m.

Last Modified :

Aug. 10, 2026, 12:17 p.m.

Remotely Exploit :

No

Source :

416baaa9-dc9f-4396-8d5f-8c081fb06d67
Affected Products

The following products are affected by CVE-2026-68090 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

No affected product recoded yet

Solution
Ensure debug objects are enabled before invoking print and fixup functions.
  • Check debug object status before calling print/fixup.
  • Update the Linux kernel to the patched version.
  • Verify the fix addresses the OOM race condition.
CWE - Common Weakness Enumeration

While CVE identifies specific instances of vulnerabilities, CWE categorizes the common flaws or weaknesses that can lead to vulnerabilities. CVE-2026-68090 is associated with the following CWEs:

Common Attack Pattern Enumeration and Classification (CAPEC)

Common Attack Pattern Enumeration and Classification (CAPEC) stores attack patterns, which are descriptions of the common attributes and approaches employed by adversaries to exploit the CVE-2026-68090 weaknesses.

We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).

Results are limited to the first 15 repositories due to potential performance issues.

The following list is the news that have been mention CVE-2026-68090 vulnerability anywhere in the article.

The following table lists the changes that have been made to the CVE-2026-68090 vulnerability over time.

Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.

  • New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    Aug. 10, 2026

    Action Type Old Value New Value
    Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'b84d435cc228e87951f3bbabf6cc4a5f25d5fb16', 'lessThan': '2d5e320b7ab9b25229ac4331541964a58b5e1d29', 'versionType': 'git'}, {'status': 'affected', 'version': 'b84d435cc228e87951f3bbabf6cc4a5f25d5fb16', 'lessThan': '203a965bf2ab43130778d8214fb0c3c8c2d19cdf', 'versionType': 'git'}, {'status': 'affected', 'version': 'b84d435cc228e87951f3bbabf6cc4a5f25d5fb16', 'lessThan': '23da32e88627e63e0864f59f4c63a2dc0ab851a3', 'versionType': 'git'}, {'status': 'affected', 'version': 'b84d435cc228e87951f3bbabf6cc4a5f25d5fb16', 'lessThan': 'd663fbf28b2eebe665bb9cf828d7d528e5a8707e', 'versionType': 'git'}, {'status': 'affected', 'version': 'b84d435cc228e87951f3bbabf6cc4a5f25d5fb16', 'lessThan': 'e2e255d07723c330dded8e576ce28a8d23a692ce', 'versionType': 'git'}, {'status': 'affected', 'version': 'b84d435cc228e87951f3bbabf6cc4a5f25d5fb16', 'lessThan': 'c00164c9e7fa6145886ad666806cb5347895de5c', 'versionType': 'git'}, {'status': 'affected', 'version': 'b84d435cc228e87951f3bbabf6cc4a5f25d5fb16', 'lessThan': '1f4f02b336c3be125c8fcf87df73db2e0e028b8b', 'versionType': 'git'}, {'status': 'affected', 'version': 'b84d435cc228e87951f3bbabf6cc4a5f25d5fb16', 'lessThan': 'b81dde13cc163450dcb402dcc915ef13ba241e01', 'versionType': 'git'}], 'programFiles': ['lib/debugobjects.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '3.3'}, {'status': 'unaffected', 'version': '0', 'lessThan': '3.3', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.96', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.39', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.4', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['lib/debugobjects.c'], 'defaultStatus': 'affected'}]
    Added 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.
    Added Reference https://git.kernel.org/stable/c/1f4f02b336c3be125c8fcf87df73db2e0e028b8b
    Added Reference https://git.kernel.org/stable/c/203a965bf2ab43130778d8214fb0c3c8c2d19cdf
    Added Reference https://git.kernel.org/stable/c/23da32e88627e63e0864f59f4c63a2dc0ab851a3
    Added Reference https://git.kernel.org/stable/c/2d5e320b7ab9b25229ac4331541964a58b5e1d29
    Added Reference https://git.kernel.org/stable/c/b81dde13cc163450dcb402dcc915ef13ba241e01
    Added Reference https://git.kernel.org/stable/c/c00164c9e7fa6145886ad666806cb5347895de5c
    Added Reference https://git.kernel.org/stable/c/d663fbf28b2eebe665bb9cf828d7d528e5a8707e
    Added Reference https://git.kernel.org/stable/c/e2e255d07723c330dded8e576ce28a8d23a692ce
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.