CVE-2026-68090 (GCVE-0-2026-68090)
Vulnerability from cvelistv5 – Published: 2026-08-10 11:51 – Updated: 2026-08-17 04:58
VLAI
EPSS
VEX
Title
debugobjects: Plug race against a concurrent OOM disable
Summary
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.
Severity
No CVSS data available.
Assigner
References
8 references
Impacted products
2 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 , < 2d5e320b7ab9b25229ac4331541964a58b5e1d29
(git)
Affected: b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 , < 203a965bf2ab43130778d8214fb0c3c8c2d19cdf (git) Affected: b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 , < 23da32e88627e63e0864f59f4c63a2dc0ab851a3 (git) Affected: b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 , < d663fbf28b2eebe665bb9cf828d7d528e5a8707e (git) Affected: b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 , < e2e255d07723c330dded8e576ce28a8d23a692ce (git) Affected: b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 , < c00164c9e7fa6145886ad666806cb5347895de5c (git) Affected: b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 , < 1f4f02b336c3be125c8fcf87df73db2e0e028b8b (git) Affected: b84d435cc228e87951f3bbabf6cc4a5f25d5fb16 , < b81dde13cc163450dcb402dcc915ef13ba241e01 (git) |
guessed | |
| Linux | Linux |
Affected:
3.3
Unaffected: 0 , < 3.3 (semver) Unaffected: 5.10.261 , ≤ 5.10.* (semver) Unaffected: 5.15.212 , ≤ 5.15.* (semver) Unaffected: 6.1.178 , ≤ 6.1.* (semver) Unaffected: 6.6.145 , ≤ 6.6.* (semver) Unaffected: 6.12.96 , ≤ 6.12.* (semver) Unaffected: 6.18.39 , ≤ 6.18.* (semver) Unaffected: 7.1.4 , ≤ 7.1.* (semver) Unaffected: 7.2 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"lib/debugobjects.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2d5e320b7ab9b25229ac4331541964a58b5e1d29",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "203a965bf2ab43130778d8214fb0c3c8c2d19cdf",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "23da32e88627e63e0864f59f4c63a2dc0ab851a3",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "d663fbf28b2eebe665bb9cf828d7d528e5a8707e",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "e2e255d07723c330dded8e576ce28a8d23a692ce",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "c00164c9e7fa6145886ad666806cb5347895de5c",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "1f4f02b336c3be125c8fcf87df73db2e0e028b8b",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "b81dde13cc163450dcb402dcc915ef13ba241e01",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"lib/debugobjects.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.3"
},
{
"lessThan": "3.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "3.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "3.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "3.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndebugobjects: Plug race against a concurrent OOM disable\n\nsyzbot reported a puzzling splat:\n\n WARNING: kernel/time/hrtimer.c:443 at stub_timer+0xa/0x20\n\nstub_timer() is installed as timer callback function in\nhrtimer_fixup_assert_init(), which is invoked when\ndebug_object_assert_init() can\u0027t find a shadow object. In that case debug\nobjects emits a warning about it before invoking the fixup.\n\nThough the provided console log lacks this warning and instead has the\nfollowing a few seconds before the splat:\n\n ODEBUG: Out of memory. ODEBUG disabled\n\nSo the object was looked up in debug_object_assert_init() and the lookup\nfailed due a concurrent out of memory situation which disabled debug\nobjects and freed the shadow objects:\n\ndebug_object_assert_init()\n if (!debug_objects_enabled)\n \treturn; obj = alloc();\n \t\t\t\tif (!obj) {\n\t\t\t\t\t\t\t// Out of memory\n \tdebug_objects_enabled = false;\n free_objects();\n obj = lookup_or_alloc();\n\n // The lookup failed because the other side\n // removed the objects, so this returns\n // an error code as the object in question\n // is not statically initialized\n\n\tif (!IS_ERR_OR_NULL(obj))\n \treturn;\n if (!obj) {\n \tdebug_oom();\n return;\n }\n\n print(...)\n if (!debug_objects_enabled)\n return;\n\n fixup(...)\n\nThe debug object splat is skipped because debug_objects_enabled is false,\nbut the fixup callback is invoked unconditionally, which makes the timer\ndisfunctional.\n\nThis is only a problem in debug_object_assert_init() and\ndebug_object_activate() as both have to handle statically initialized\nobjects and therefore must handle the error pointer return case\ngracefully. All other places only handle the found/not found case and the\nNULL pointer return is a signal for OOM. Otherwise they get a valid shadow\nobject.\n\nPlug the hole by checking whether debug objects are still enabled before\ninvoking the print and fixup function in those two places."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:58:38.177Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2d5e320b7ab9b25229ac4331541964a58b5e1d29"
},
{
"url": "https://git.kernel.org/stable/c/203a965bf2ab43130778d8214fb0c3c8c2d19cdf"
},
{
"url": "https://git.kernel.org/stable/c/23da32e88627e63e0864f59f4c63a2dc0ab851a3"
},
{
"url": "https://git.kernel.org/stable/c/d663fbf28b2eebe665bb9cf828d7d528e5a8707e"
},
{
"url": "https://git.kernel.org/stable/c/e2e255d07723c330dded8e576ce28a8d23a692ce"
},
{
"url": "https://git.kernel.org/stable/c/c00164c9e7fa6145886ad666806cb5347895de5c"
},
{
"url": "https://git.kernel.org/stable/c/1f4f02b336c3be125c8fcf87df73db2e0e028b8b"
},
{
"url": "https://git.kernel.org/stable/c/b81dde13cc163450dcb402dcc915ef13ba241e01"
}
],
"title": "debugobjects: Plug race against a concurrent OOM disable",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68090",
"datePublished": "2026-08-10T11:51:45.149Z",
"dateReserved": "2026-07-30T09:28:09.367Z",
"dateUpdated": "2026-08-17T04:58:38.177Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-68090",
"date": "2026-10-30",
"epss": "0.00177",
"percentile": "0.07229"
},
"nvd": {
"cve": {
"affected": [
{
"affectedData": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"lib/debugobjects.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2d5e320b7ab9b25229ac4331541964a58b5e1d29",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "203a965bf2ab43130778d8214fb0c3c8c2d19cdf",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "23da32e88627e63e0864f59f4c63a2dc0ab851a3",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "d663fbf28b2eebe665bb9cf828d7d528e5a8707e",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "e2e255d07723c330dded8e576ce28a8d23a692ce",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "c00164c9e7fa6145886ad666806cb5347895de5c",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "1f4f02b336c3be125c8fcf87df73db2e0e028b8b",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
},
{
"lessThan": "b81dde13cc163450dcb402dcc915ef13ba241e01",
"status": "affected",
"version": "b84d435cc228e87951f3bbabf6cc4a5f25d5fb16",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"lib/debugobjects.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.3"
},
{
"lessThan": "3.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndebugobjects: Plug race against a concurrent OOM disable\n\nsyzbot reported a puzzling splat:\n\n WARNING: kernel/time/hrtimer.c:443 at stub_timer+0xa/0x20\n\nstub_timer() is installed as timer callback function in\nhrtimer_fixup_assert_init(), which is invoked when\ndebug_object_assert_init() can\u0027t find a shadow object. In that case debug\nobjects emits a warning about it before invoking the fixup.\n\nThough the provided console log lacks this warning and instead has the\nfollowing a few seconds before the splat:\n\n ODEBUG: Out of memory. ODEBUG disabled\n\nSo the object was looked up in debug_object_assert_init() and the lookup\nfailed due a concurrent out of memory situation which disabled debug\nobjects and freed the shadow objects:\n\ndebug_object_assert_init()\n if (!debug_objects_enabled)\n \treturn; obj = alloc();\n \t\t\t\tif (!obj) {\n\t\t\t\t\t\t\t// Out of memory\n \tdebug_objects_enabled = false;\n free_objects();\n obj = lookup_or_alloc();\n\n // The lookup failed because the other side\n // removed the objects, so this returns\n // an error code as the object in question\n // is not statically initialized\n\n\tif (!IS_ERR_OR_NULL(obj))\n \treturn;\n if (!obj) {\n \tdebug_oom();\n return;\n }\n\n print(...)\n if (!debug_objects_enabled)\n return;\n\n fixup(...)\n\nThe debug object splat is skipped because debug_objects_enabled is false,\nbut the fixup callback is invoked unconditionally, which makes the timer\ndisfunctional.\n\nThis is only a problem in debug_object_assert_init() and\ndebug_object_activate() as both have to handle statically initialized\nobjects and therefore must handle the error pointer return case\ngracefully. All other places only handle the found/not found case and the\nNULL pointer return is a signal for OOM. Otherwise they get a valid shadow\nobject.\n\nPlug the hole by checking whether debug objects are still enabled before\ninvoking the print and fixup function in those two places."
}
],
"id": "CVE-2026-68090",
"lastModified": "2026-08-17T05:18:08.173",
"metrics": {},
"published": "2026-08-10T12:17:21.717",
"references": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/1f4f02b336c3be125c8fcf87df73db2e0e028b8b"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/203a965bf2ab43130778d8214fb0c3c8c2d19cdf"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/23da32e88627e63e0864f59f4c63a2dc0ab851a3"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/2d5e320b7ab9b25229ac4331541964a58b5e1d29"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/b81dde13cc163450dcb402dcc915ef13ba241e01"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/c00164c9e7fa6145886ad666806cb5347895de5c"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/d663fbf28b2eebe665bb9cf828d7d528e5a8707e"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/e2e255d07723c330dded8e576ce28a8d23a692ce"
}
],
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"vulnStatus": "Received"
}
},
"redhat_vex": {
"aggregate_severity": "Low",
"current_release_date": "2026-10-30T08:11:21+00:00",
"cve": "CVE-2026-68090",
"id": "CVE-2026-68090",
"initial_release_date": "2026-08-10T00:00:00+00:00",
"product_status:known_affected": "276",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "kernel: debugobjects: Plug race against a concurrent OOM disable",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-68090.json",
"version": "3"
}
}
}
Loading…
Loading…
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
Loading timeline…
Loading…
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.