PCI/DOE: Fix destroy_work_on_stack() race
In the Linux kernel, the following vulnerability has been resolved: PCI/DOE: Fix destroy_work_on_stack() race The following debug object splat was observed in testing: ODEBUG: free active (active state 0) object: 0000000097d23782 object type: work_struct hint: doe_statemachine_work+0x0/0x510 WARNING: CPU: 1 PID: 71 at lib/debugobjects.c:514 debug_print_object+0x7d/0xb0 ... Workqueue: pci 0000:36:00.0 DOE [1 doe_statemachine_work RIP: 0010:debug_print_object+0x7d/0xb0 ... Call Trace: ? debug_print_object+0x7d/0xb0 ? __pfx_doe_statemachine_work+0x10/0x10 debug_object_free.part.0+0x11b/0x150 doe_statemachine_work+0x45e/0x510 process_one_work+0x1d4/0x3c0 This occurs because destroy_work_on_stack() was called after signaling the completion in the calling thread. This creates a race between destroy_work_on_stack() and the task->work struct going out of scope in pci_doe(). Signal the work complete after destroying the work struct. This is safe because signal_task_complete() is the final thing the work item does and the workqueue code is careful not to access the work struct after.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 6.1.53, 6.4.16, 6.5.3
- CVEs
- CVE-2023-54235
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 28 Oct 2026, 08:57 UTC · Revision 1
Source evidence
In the Linux kernel, the following vulnerability has been resolved: PCI/DOE: Fix destroy_work_on_stack() race The following debug object splat was observed in testing: ODEBUG: free active (active state 0) object: 0000000097d23782 object type: work_struct hint: doe_statemachine_work+0x0/0x510 WARNING: CPU: 1 PID: 71 at lib/debugobjects.c:514 debug_print_object+0x7d/0xb0 ... Workqueue: pci 0000:36:00.0 DOE [1 doe_statemachine_work RIP: 0010:debug_print_object+0x7d/0xb0 ... Call Trace: ? debug_print_object+0x7d/0xb0 ? __pfx_doe_statemachine_work+0x10/0x10 debug_object_free.part.0+0x11b/0x150 doe_statemachine_work+0x45e/0x510 process_one_work+0x1d4/0x3c0 This occurs because destroy_work_on_stack() was called after signaling the completion in the calling thread. This creates a race between destroy_work_on_stack() and the task->work struct going out of scope in pci_doe(). Signal the work complete after destroying the work struct. This is safe because signal_task_complete() is the final thing the work item does and the workqueue code is careful not to access the work struct after.
osv:CVE-2023-54235
Kernel
Fixed versions: 6.1.53, 6.4.16, 6.5.3
Complete source record
{
"id": "29f839e16342f2419dd1fd802fe91a4ca7376cb388c0bcafb1c30da5dbb50c13",
"url": "https://osv.dev/vulnerability/CVE-2023-54235",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "PCI/DOE: Fix destroy_work_on_stack() race",
"summary": "In the Linux kernel, the following vulnerability has been resolved: PCI/DOE: Fix destroy_work_on_stack() race The following debug object splat was observed in testing: ODEBUG: free active (active state 0) object: 0000000097d23782 object type: work_struct hint: doe_statemachine_work+0x0/0x510 WARNING: CPU: 1 PID: 71 at lib/debugobjects.c:514 debug_print_object+0x7d/0xb0 ... Workqueue: pci 0000:36:00.0 DOE [1 doe_statemachine_work RIP: 0010:debug_print_object+0x7d/0xb0 ... Call Trace: ? debug_print_object+0x7d/0xb0 ? __pfx_doe_statemachine_work+0x10/0x10 debug_object_free.part.0+0x11b/0x150 doe_statemachine_work+0x45e/0x510 process_one_work+0x1d4/0x3c0 This occurs because destroy_work_on_stack() was called after signaling the completion in the calling thread. This creates a race between destroy_work_on_stack() and the task->work struct going out of scope in pci_doe(). Signal the work complete after destroying the work struct. This is safe because signal_task_complete() is the final thing the work item does and the workqueue code is careful not to access the work struct after.",
"evidence": "osv:CVE-2023-54235",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "6.1.53",
"evidence": "/affected/1/ranges"
},
{
"value": "6.4.16",
"evidence": "/affected/1/ranges"
},
{
"value": "6.5.3",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2023-54235",
"aliases": [
"CVE-2023-54235"
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "2a0e0f4773fe8032fb17e56f897bee32ce3cdc2b"
},
{
"fixed": "d96799ee3b78962c80e4b6653734f488f999ca09"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "abf04be0e7071f2bcd39bf97ba407e7d4439785e"
},
{
"fixed": "c4f9c0a3a6df143f2e1092823b7fa9e07d6ab57f"
},
{
"fixed": "19cf3ba16dcc2ef059dcf010072d4f96d76486e0"
},
{
"fixed": "e3a3a097eaebaf234a482b4d2f9f18fe989208c1"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "6.1.24"
},
{
"fixed": "6.1.53"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "6.2.11"
},
{
"fixed": "6.3"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "95628b830952943631d3d74f73f431f501c5d6f5"
}
]
}
],
"versions": [
"v6.1.52",
"v6.1.51",
"v6.1.50",
"v6.1.49",
"v6.1.48",
"v6.1.47",
"v6.1.46",
"v6.1.45",
"v6.1.44",
"v6.1.43",
"v6.1.42",
"v6.1.41",
"v6.1.40",
"v6.1.39",
"v6.1.38",
"v6.1.37",
"v6.1.36",
"v6.1.35",
"v6.1.34",
"v6.1.33",
"v6.1.32",
"v6.1.31",
"v6.1.30",
"v6.1.29",
"v6.1.28",
"v6.1.27",
"v6.1.26",
"v6.1.25",
"v6.1.24",
"v6.2.16",
"v6.2.15",
"v6.2.14",
"v6.2.13",
"v6.2.12",
"v6.2.11"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-54235.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "6.1.53"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.2.0"
},
{
"fixed": "6.4.16"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.3.0"
},
{
"fixed": "6.5.3"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-54235.json"
}
}
],
"modified": "2026-10-08T02:48:02.848253979Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/19cf3ba16dcc2ef059dcf010072d4f96d76486e0",
"https://git.kernel.org/stable/c/c4f9c0a3a6df143f2e1092823b7fa9e07d6ab57f",
"https://git.kernel.org/stable/c/d96799ee3b78962c80e4b6653734f488f999ca09",
"https://git.kernel.org/stable/c/e3a3a097eaebaf234a482b4d2f9f18fe989208c1",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/54xxx/CVE-2023-54235.json",
"https://nvd.nist.gov/vuln/detail/CVE-2023-54235",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/54xxx/CVE-2023-54235.json"
}
},
"related_cves": [
{
"value": "CVE-2023-54235",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 98258,
"published_at": "2025-12-30T12:11:25.688+00:00"
}