CVE-2026-90178: hwmon: (coretemp) Fix core_data leak on CPUs without PTS

Published Sep 17, 2026
·
Updated

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

hwmon: (coretemp) Fix coredata leak on CPUs without PTS

pdata->coredata is allocated in inittempdata() when the first core tempdata of a package is created, but it is only released from destroytempdata(), and only in the branch that handles the package tempdata.

Package tempdata is created solely when the CPU supports X86FEATUREPTS. On a CPU without it, coretempcpuonline() never calls coretempaddcore() with pkgflag set, so pdata->pkgdata stays NULL. coretempcpuoffline() then skips the removal of the package interface, destroytempdata() is never called for package data, and the array is still allocated when coretempdeviceremove() frees the platform data that pointed at it.

Release the array in coretempdeviceremove(). destroytempdata() sets pdata->coredata to NULL when it frees it, so the added kfree() is a no-op on CPUs that do have PTS.

Tested on an Intel Core i5-1135G7. The driver was instrumented to log every allocation and release of pdata->coredata, and the PTS check in coretempcpuonline() was patched out to emulate a CPU without package thermal support. Without this change the array was allocated and never released, and coretempdeviceremove() still saw a non-NULL pointer. With it the array is released and the pointer accounting balances. On an unmodified build the release still happens via the package tempdata and the added kfree() sees NULL, with no slab warnings over repeated module load and unload cycles.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 17, 2026
CVE Published
via MITRE·04:07 PM
Data Sourced
via MITRE·04:07 PM
Description

Frequently Asked Questions

1

Which systems are exposed to this memory leak?

Systems using the Linux kernel coretemp driver on CPUs that do not support X86_FEATURE_PTS are affected. On these CPUs, package temperature data is not created, leaving the allocated core_data array unreleased during device removal.

2

When does the unreleased allocation occur?

The allocation is made when temperature data for the first core in a package is created. It remains allocated when the coretemp device is removed because the package-data cleanup path is skipped on CPUs without PTS.

3

Does the added cleanup change behavior on CPUs with package thermal support?

No. On CPUs with PTS, the existing cleanup path frees core_data and sets its pointer to NULL, so the additional free in device removal is a no-op.

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