Skip to content
Heist/ feed
Back to feed
UnratedFix available

thermal: hwmon: Remove hwmon class device along with its parent

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: thermal: hwmon: Remove hwmon class device along with its parent The current code creates one hwmon device per thermal zone type and that device is registered under the first thermal zone of the given type. That turns out to be problematic when the thermal zone holding the hwmon device is removed. For example, say that there are two ACPI thermal zones on a system /sys/devices/virtual/thermal/thermal_zone0/ /sys/devices/virtual/thermal/thermal_zone1/ The current code registers a hwmon class device for thermal_zone0 only: /sys/devices/virtual/thermal/thermal_zone0/hwmon0/ because the type is "acpitz" for both of them, but it adds a sysfs attribute that belongs to thermal_zone1 under it: /sys/devices/virtual/thermal/thermal_zone0/hwmon0/temp2_input There is also /sys/devices/virtual/thermal/thermal_zone0/hwmon0/temp1_input which belongs to thermal_zone0. When thermal_zone0 is removed, say because the ACPI thermal driver is unbound from the underlying platform device, thermal_remove_hwmon_sysfs() skips the removal of hwmon0 because of the temp2_input attribute belonging to thermal_zone1 which effectively prevents thermal_zone0 removal from making progress. Address this by making thermal_remove_hwmon_sysfs() remove the entire hwmon class device interface for the given thermal zone type when the thermal zone device holding it is removed. To prevent races with thermal_add_hwmon_sysfs() that may interfere with this, c

Products
Kernel
Affected versions
Not specified
Fixed versions
6.1.191, 6.12.114, 6.18.57, 6.6.160, 7.2.6
CVEs
CVE-2026-90311
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 04:53 UTC · Revision 1

Source evidence

thermal: hwmon: Remove hwmon class device along with its parent

core-osv · Original source

Published 17 Sept 2026, 16:08 UTC

In the Linux kernel, the following vulnerability has been resolved: thermal: hwmon: Remove hwmon class device along with its parent The current code creates one hwmon device per thermal zone type and that device is registered under the first thermal zone of the given type. That turns out to be problematic when the thermal zone holding the hwmon device is removed. For example, say that there are two ACPI thermal zones on a system /sys/devices/virtual/thermal/thermal_zone0/ /sys/devices/virtual/thermal/thermal_zone1/ The current code registers a hwmon class device for thermal_zone0 only: /sys/devices/virtual/thermal/thermal_zone0/hwmon0/ because the type is "acpitz" for both of them, but it adds a sysfs attribute that belongs to thermal_zone1 under it: /sys/devices/virtual/thermal/thermal_zone0/hwmon0/temp2_input There is also /sys/devices/virtual/thermal/thermal_zone0/hwmon0/temp1_input which belongs to thermal_zone0. When thermal_zone0 is removed, say because the ACPI thermal driver is unbound from the underlying platform device, thermal_remove_hwmon_sysfs() skips the removal of hwmon0 because of the temp2_input attribute belonging to thermal_zone1 which effectively prevents thermal_zone0 removal from making progress. Address this by making thermal_remove_hwmon_sysfs() remove the entire hwmon class device interface for the given thermal zone type when the thermal zone device holding it is removed. To prevent races with thermal_add_hwmon_sysfs() that may interfere with this, c

osv:CVE-2026-90311

Kernel

Fixed versions: 6.1.191, 6.6.160, 6.12.114, 6.18.57, 7.2.6

Complete source record
{
  "id": "2f27bbabba8d7ddbf9ce20325bf2ec2885025d2b6186162452a48faef3610ed7",
  "url": "https://osv.dev/vulnerability/CVE-2026-90311",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "thermal: hwmon: Remove hwmon class device along with its parent",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: thermal: hwmon: Remove hwmon class device along with its parent The current code creates one hwmon device per thermal zone type and that device is registered under the first thermal zone of the given type. That turns out to be problematic when the thermal zone holding the hwmon device is removed. For example, say that there are two ACPI thermal zones on a system /sys/devices/virtual/thermal/thermal_zone0/ /sys/devices/virtual/thermal/thermal_zone1/ The current code registers a hwmon class device for thermal_zone0 only: /sys/devices/virtual/thermal/thermal_zone0/hwmon0/ because the type is \"acpitz\" for both of them, but it adds a sysfs attribute that belongs to thermal_zone1 under it: /sys/devices/virtual/thermal/thermal_zone0/hwmon0/temp2_input There is also /sys/devices/virtual/thermal/thermal_zone0/hwmon0/temp1_input which belongs to thermal_zone0. When thermal_zone0 is removed, say because the ACPI thermal driver is unbound from the underlying platform device, thermal_remove_hwmon_sysfs() skips the removal of hwmon0 because of the temp2_input attribute belonging to thermal_zone1 which effectively prevents thermal_zone0 removal from making progress. Address this by making thermal_remove_hwmon_sysfs() remove the entire hwmon class device interface for the given thermal zone type when the thermal zone device holding it is removed. To prevent races with thermal_add_hwmon_sysfs() that may interfere with this, c",
    "evidence": "osv:CVE-2026-90311",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "6.1.191",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.160",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.114",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.57",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.6",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-90311",
      "aliases": [
        "CVE-2026-90311"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "f6b6b52ef7a54160c0a4d2b56a58f84a2e5b33c5"
                },
                {
                  "fixed": "e67dad2cff9e4fedce69e752d515ef651d745a90"
                },
                {
                  "fixed": "df002834cfd880b800fa607135e4bb2e403ce187"
                },
                {
                  "fixed": "23094544b8e8c43909fd61ca8866ecfe38093ae8"
                },
                {
                  "fixed": "9b405b3e7e131ee85dd78b9cc951b41f0828a333"
                },
                {
                  "fixed": "4fa8915f40f744c6db2a3c25b2ae7d2dd64c77b4"
                },
                {
                  "fixed": "2b57e24d34b2dfc43c81942bb359d6315bf302fb"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90311.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "4.19.0"
                },
                {
                  "fixed": "6.1.191"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.160"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.114"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.57"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.2.6"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90311.json"
          }
        }
      ],
      "modified": "2026-11-01T02:30:56.111762141Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/23094544b8e8c43909fd61ca8866ecfe38093ae8",
        "https://git.kernel.org/stable/c/2b57e24d34b2dfc43c81942bb359d6315bf302fb",
        "https://git.kernel.org/stable/c/4fa8915f40f744c6db2a3c25b2ae7d2dd64c77b4",
        "https://git.kernel.org/stable/c/9b405b3e7e131ee85dd78b9cc951b41f0828a333",
        "https://git.kernel.org/stable/c/df002834cfd880b800fa607135e4bb2e403ce187",
        "https://git.kernel.org/stable/c/e67dad2cff9e4fedce69e752d515ef651d745a90",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90311.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-90311",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90311.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-90311",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 492596,
  "published_at": "2026-09-17T16:08:31.645+00:00"
}