[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025123032-CVE-2023-54235-51bc@gregkh>
Date: Tue, 30 Dec 2025 13:14:05 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...nel.org>
Subject: CVE-2023-54235: PCI/DOE: Fix destroy_work_on_stack() race
From: Greg Kroah-Hartman <gregkh@...nel.org>
Description
===========
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.
The Linux kernel CVE team has assigned CVE-2023-54235 to this issue.
Affected and fixed versions
===========================
Issue introduced in 6.1.24 with commit 2a0e0f4773fe8032fb17e56f897bee32ce3cdc2b and fixed in 6.1.53 with commit d96799ee3b78962c80e4b6653734f488f999ca09
Issue introduced in 6.3 with commit abf04be0e7071f2bcd39bf97ba407e7d4439785e and fixed in 6.4.16 with commit c4f9c0a3a6df143f2e1092823b7fa9e07d6ab57f
Issue introduced in 6.3 with commit abf04be0e7071f2bcd39bf97ba407e7d4439785e and fixed in 6.5.3 with commit 19cf3ba16dcc2ef059dcf010072d4f96d76486e0
Issue introduced in 6.3 with commit abf04be0e7071f2bcd39bf97ba407e7d4439785e and fixed in 6.6 with commit e3a3a097eaebaf234a482b4d2f9f18fe989208c1
Issue introduced in 6.2.11 with commit 95628b830952943631d3d74f73f431f501c5d6f5
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2023-54235
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
drivers/pci/doe.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/d96799ee3b78962c80e4b6653734f488f999ca09
https://git.kernel.org/stable/c/c4f9c0a3a6df143f2e1092823b7fa9e07d6ab57f
https://git.kernel.org/stable/c/19cf3ba16dcc2ef059dcf010072d4f96d76486e0
https://git.kernel.org/stable/c/e3a3a097eaebaf234a482b4d2f9f18fe989208c1
Powered by blists - more mailing lists