CVE-2026-98562: net: libwx: fix races in Tx timestamp handling

Published Oct 18, 2026
·
Updated

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

net: libwx: fix races in Tx timestamp handling

wx->ptptxskb is shared between the Tx path, the PTP auxiliary worker and the timestamp cleanup paths. The WXSTATEPTPTXINPROGRESS bit prevents multiple Tx paths from submitting timestamp requests, but does not serialize the worker against cleanup.

As a result, wxptpcleartxtimestamp() can free an skb after wxptptxhwtstampwork() has obtained its pointer. The worker may then pass the freed skb to skbtstamptx() and release the same reference again.

The cleanup path may also clear the in-progress bit while the worker is still processing the old skb. This allows the Tx path to publish a new skb which the worker can subsequently overwrite with NULL, leaking its reference.

Add a dedicated spinlock to protect publication and consumption of the Tx timestamp skb. Detach the skb and clear the in-progress bit while holding the lock, then deliver the timestamp and release the skb after dropping it. Use the same locked cleanup in the quiesce path, but keep the detach there free of register accesses: quiesce runs during PCIe error recovery, where MMIO is not reliable, and it deliberately did not touch the device before. The lock is taken with interrupts disabled, because netpoll can call ndostartxmit() with hard interrupts already off.

When handling a Tx DMA mapping failure, keep the transmit path reference until after comparing the skb under the lock. This prevents skb address reuse from making the error path mistake a newer timestamp request for the failed one.

Affected Software

1 affected component
Linux Linux kernel

Event History

Oct 18, 2026
CVE Published
via MITRE·03:18 PM
Data Sourced
via MITRE·03:18 PM
Description
Data Sourced
via NVD·04:17 PM
Description

Frequently Asked Questions

1

What conditions are required for this issue to occur?

The affected code must be handling transmit hardware timestamps through libwx. The race involves concurrent activity between the transmit path, the PTP auxiliary worker, and timestamp cleanup or quiesce paths.

2

What is the impact of the race?

The cleanup path can free an skb while the PTP worker still holds its pointer, allowing the worker to use that freed skb and release the reference again. A separate race can cause a newly published skb reference to be overwritten with NULL, leaking that reference.

3

Is PCIe error recovery relevant to this issue?

Yes. The quiesce path can run during PCIe error recovery, when MMIO access is not reliable, and it participates in timestamp cleanup. The fix uses the same locked cleanup approach while ensuring the quiesce-path detach does not access registers.

4

What does the fix change?

The fix adds a dedicated spinlock for publication and consumption of the transmit timestamp skb. It detaches the skb and clears the in-progress state under that lock, then delivers the timestamp and releases the skb only after dropping the lock.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203