CVE-2023-54235

PCI/DOE: Fix destroy_work_on_stack() race

published December 30, 2025

CVSS
—
EPSS
0%
Percentile
9.2
In the wild
Unconfirmed
What it is

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 record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00199 · 9.2th percentile
Published
2025-12-30T12:11Z
EPSS history
Timeline
  • 30 DEC 12:11Z
    PCI/DOE: Fix destroy_work_on_stack() race
    cvelistv5