CVE-2025-39855

Source
https://nvd.nist.gov/vuln/detail/CVE-2025-39855
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-39855.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2025-39855
Downstream
Published
2025-09-19T15:26:26.717Z
Modified
2025-12-02T19:23:12.834170Z
Summary
ice: fix NULL access of tx->in_use in ice_ptp_ts_irq
Details

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

ice: fix NULL access of tx->inuse in iceptptsirq

The E810 device has support for a "low latency" firmware interface to access and read the Tx timestamps. This interface does not use the standard Tx timestamp logic, due to the latency overhead of proxying sideband command requests over the firmware AdminQ.

The logic still makes use of the Tx timestamp tracking structure, iceptptx, as it uses the same "ready" bitmap to track which Tx timestamps complete.

Unfortunately, the iceptpts_irq() function does not check if the tracker is initialized before its first access. This results in NULL dereference or use-after-free bugs similar to the following:

[245977.278756] BUG: kernel NULL pointer dereference, address: 0000000000000000 [245977.278774] RIP: 0010:findfirstbit+0x19/0x40 [245977.278796] Call Trace: [245977.278809] ? icemisc_intr+0x364/0x380 [ice]

This can occur if a Tx timestamp interrupt races with the driver reset logic.

Fix this by only checking the in_use bitmap (and other fields) if the tracker is marked as initialized. The reset flow will clear the init field under lock before it tears the tracker down, thus preventing any use-after-free or NULL access.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/39xxx/CVE-2025-39855.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
f9472aaabd1f38954938838a1146db4855ad88e8
Fixed
1467a873b20110263cc9c93de99335d139c11e16
Fixed
403bf043d9340196e06769065169df7444b91f7a

Affected versions

v6.*

v6.14
v6.14-rc2
v6.14-rc3
v6.14-rc4
v6.14-rc5
v6.14-rc6
v6.14-rc7
v6.15
v6.15-rc1
v6.15-rc2
v6.15-rc3
v6.15-rc4
v6.15-rc5
v6.15-rc6
v6.15-rc7
v6.16
v6.16-rc1
v6.16-rc2
v6.16-rc3
v6.16-rc4
v6.16-rc5
v6.16-rc6
v6.16-rc7
v6.16.1
v6.16.2
v6.16.3
v6.16.4
v6.16.5
v6.17-rc1
v6.17-rc2
v6.17-rc3

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.15.0
Fixed
6.16.6