---
id: CVE-2026-99058
title: 'workqueue: Fix NULL current_pwq deref in chained work check'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  workqueue: Fix NULL current_pwq deref in chained work check

  current_wq_worker() only tells us that %current is a kworker. It does
  not guarantee that the worker is curr…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 8d03ecfe471802d6afe97da97722b6924533aa82 <
    3dc61af2998cfc7312d6e59bbdcd5eed074483f2
  - >-
    Linux >= 8d03ecfe471802d6afe97da97722b6924533aa82 <
    729d576df89c7e4341e58c452f8890620a610ac2
  - >-
    Linux >= 8d03ecfe471802d6afe97da97722b6924533aa82 <
    b12a25fb2b9d5dac80e419d695450cc17a51fdfd
  - >-
    Linux >= 8d03ecfe471802d6afe97da97722b6924533aa82 <
    1a2668682e998039a027796b236319b380078a6a
  - >-
    Linux >= 8d03ecfe471802d6afe97da97722b6924533aa82 <
    980db94e3eeefdd8a1c46f86412c33a7f7806f51
  - Linux 3.9
published: '2026-10-23'
updated: '2026-10-23'
sourceUpdated: '2026-10-23T12:22:45.920Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-99058'
references:
  - url: 'https://git.kernel.org/stable/c/3dc61af2998cfc7312d6e59bbdcd5eed074483f2'
  - url: 'https://git.kernel.org/stable/c/729d576df89c7e4341e58c452f8890620a610ac2'
  - url: 'https://git.kernel.org/stable/c/b12a25fb2b9d5dac80e419d695450cc17a51fdfd'
  - url: 'https://git.kernel.org/stable/c/1a2668682e998039a027796b236319b380078a6a'
  - url: 'https://git.kernel.org/stable/c/980db94e3eeefdd8a1c46f86412c33a7f7806f51'
tags:
  - cve.org
ingestedAt: '2026-10-23T13:24:55.523Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

workqueue: Fix NULL current_pwq deref in chained work check

current_wq_worker() only tells us that %current is a kworker. It does
not guarantee that the worker is currently executing a work item, as
worker->current_pwq is populated only while process_one_work() is running
the work function.

is_chained_work() can be reached while queueing on a draining or
destroying workqueue. If a kworker outside work-item execution reaches
that path, current_wq_worker() returns a worker but worker->current_pwq is
NULL, and the chained-work test can fault before it emits the intended
warning.

Guard the chained-work test with worker->current_pwq. A kworker without
current_pwq is not executing work on the target workqueue, so the helper
should return false and let the draining/destroying warning fire.

## Affected

- `Linux >= 8d03ecfe471802d6afe97da97722b6924533aa82 < 3dc61af2998cfc7312d6e59bbdcd5eed074483f2`
- `Linux >= 8d03ecfe471802d6afe97da97722b6924533aa82 < 729d576df89c7e4341e58c452f8890620a610ac2`
- `Linux >= 8d03ecfe471802d6afe97da97722b6924533aa82 < b12a25fb2b9d5dac80e419d695450cc17a51fdfd`
- `Linux >= 8d03ecfe471802d6afe97da97722b6924533aa82 < 1a2668682e998039a027796b236319b380078a6a`
- `Linux >= 8d03ecfe471802d6afe97da97722b6924533aa82 < 980db94e3eeefdd8a1c46f86412c33a7f7806f51`
- `Linux 3.9`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
