CVE-2026-74549 (GCVE-0-2026-74549)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-08-19 16:38
Summary
In the Linux kernel, the following vulnerability has been resolved: hwmon: (nct6775-core) Prevent access to unsupported weight registers Sashiko reports: During initialization of the nct6116 chip, the driver sets data->pwm_num to 5. However, it assigns several NCT6106 register arrays (such as NCT6106_REG_WEIGHT_DUTY_STEP, NCT6106_REG_WEIGHT_TEMP_SEL, and NCT6106_REG_WEIGHT_TEMP_*) to data->REG_PWM and data->REG_WEIGHT_TEMP. These arrays only contain 3 elements. In nct6775_update_pwm(), the driver iterates up to data->pwm_num. If data->has_pwm has bits 3 or 4 set (which is structurally possible for nct6116), the loop attempts to read elements at index 3 and 4 from these 3-element arrays. This results in a global out-of-bounds read, which can be caught by KASAN. Furthermore, the driver uses these garbage out-of-bounds values as hardware register addresses for subsequent read and write operations. This leads to invalid hardware register access, potentially causing hardware misconfiguration or system crashes. The underlying problem is that the chip does support up to five fan control channels, but only the first three support weight control. Fix the problem by extending the affected weight register arrays with zeroed fields. The driver uses zeroed register addresses to determine if a register is supported or not, and skips accesses for unsupported registers.
Impacted products
Vendor Product Version
Linux Linux Version: 29c7cb485b321c024dedc168bcbb04451176b163
Version: 29c7cb485b321c024dedc168bcbb04451176b163
Version: 29c7cb485b321c024dedc168bcbb04451176b163
Version: 29c7cb485b321c024dedc168bcbb04451176b163
Version: 29c7cb485b321c024dedc168bcbb04451176b163
Version: 29c7cb485b321c024dedc168bcbb04451176b163
Version: 29c7cb485b321c024dedc168bcbb04451176b163
Version: 29c7cb485b321c024dedc168bcbb04451176b163
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/hwmon/nct6775-core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "0d11b2a10269ace29832f584d207ff3768f79dc5",
              "status": "affected",
              "version": "29c7cb485b321c024dedc168bcbb04451176b163",
              "versionType": "git"
            },
            {
              "lessThan": "4a77f1d72c6db04cbbfab0250292ac71fdea5f0a",
              "status": "affected",
              "version": "29c7cb485b321c024dedc168bcbb04451176b163",
              "versionType": "git"
            },
            {
              "lessThan": "513d847f7a95bbdbeaaf55fb942c38992587734f",
              "status": "affected",
              "version": "29c7cb485b321c024dedc168bcbb04451176b163",
              "versionType": "git"
            },
            {
              "lessThan": "25b528816f5d83be5236dc182692369e8c9402b0",
              "status": "affected",
              "version": "29c7cb485b321c024dedc168bcbb04451176b163",
              "versionType": "git"
            },
            {
              "lessThan": "689082a4cb166a7ae9729f7b12339e69fdad6c52",
              "status": "affected",
              "version": "29c7cb485b321c024dedc168bcbb04451176b163",
              "versionType": "git"
            },
            {
              "lessThan": "1b722740ac5c2b2070f9ba922f4e0f227faf0246",
              "status": "affected",
              "version": "29c7cb485b321c024dedc168bcbb04451176b163",
              "versionType": "git"
            },
            {
              "lessThan": "4ad2972ef0e1bd1018ad7a72661a4636ed7daecc",
              "status": "affected",
              "version": "29c7cb485b321c024dedc168bcbb04451176b163",
              "versionType": "git"
            },
            {
              "lessThan": "d0b704e569ac3b8416d8e02270cdc9bf830ed395",
              "status": "affected",
              "version": "29c7cb485b321c024dedc168bcbb04451176b163",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/hwmon/nct6775-core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.4"
            },
            {
              "lessThan": "5.4",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.265",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.216",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.183",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.151",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.103",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.44",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.265",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.216",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.183",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.151",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.103",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.44",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.8",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhwmon: (nct6775-core) Prevent access to unsupported weight registers\n\nSashiko reports:\n\nDuring initialization of the nct6116 chip, the driver sets data-\u003epwm_num\nto 5. However, it assigns several NCT6106 register arrays (such as\nNCT6106_REG_WEIGHT_DUTY_STEP, NCT6106_REG_WEIGHT_TEMP_SEL, and\nNCT6106_REG_WEIGHT_TEMP_*) to data-\u003eREG_PWM and data-\u003eREG_WEIGHT_TEMP.\nThese arrays only contain 3 elements.\n\nIn nct6775_update_pwm(), the driver iterates up to data-\u003epwm_num. If\ndata-\u003ehas_pwm has bits 3 or 4 set (which is structurally possible for\nnct6116), the loop attempts to read elements at index 3 and 4 from these\n3-element arrays. This results in a global out-of-bounds read, which can\nbe caught by KASAN.\n\nFurthermore, the driver uses these garbage out-of-bounds values as\nhardware register addresses for subsequent read and write operations. This\nleads to invalid hardware register access, potentially causing hardware\nmisconfiguration or system crashes.\n\nThe underlying problem is that the chip does support up to five fan\ncontrol channels, but only the first three support weight control.\nFix the problem by extending the affected weight register arrays with\nzeroed fields. The driver uses zeroed register addresses to determine\nif a register is supported or not, and skips accesses for unsupported\nregisters."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - Exploitation requires local access to hwmon sysfs under /sys/class/hwmon/; any read or write of sensor attributes invokes nct6775_update_device() and reaches the vulnerable nct6775_update_pwm() path via the platform Super I/O driver.\nAC:L - On affected NCT6116 systems with PWM channels 4-5 enabled (has_pwm bits 3-4), triggering is reliable by reading or writing any exposed hwmon attribute; no race or special victim state is required beyond standard sysfs access.\nPR:L - Fan and PWM sysfs attributes are created with mode 0644 and the driver performs no capability or permission checks beyond standard file permissions, so any unprivileged local user can trigger the vulnerable update and store paths.\nUI:N - No victim interaction is required; the attacker directly reads or writes hwmon sysfs files to invoke nct6775_update_pwm() and associated store handlers without needing another user to perform any action.\nS:U - The vulnerability corrupts kernel driver state and on-chip Super I/O fan/thermal registers on the same host; it does not cross a VM, container, or IOMMU security boundary to impact a separate authority.\nC:H - Indexing past the three-element NCT6106 weight register arrays causes a global out-of-bounds read in kernel .rodata (KASAN-detectable), and the resulting bogus register addresses drive unintended hardware reads whose values are cached and returned through sysfs.\nI:H - Out-of-bounds indices supply valid but incorrect Super I/O register addresses (e.g. auto-temperature registers of other PWM channels) to nct6775_write_value() via writable 0644 sysfs stores, enabling cross-channel fan/thermal misconfiguration.\nA:H - Misdirected reads and writes to wrong Super I/O control registers can corrupt active fan/thermal management on industrial/embedded systems with five PWM channels, potentially causing kernel faults, thermal emergency shutdown, or sustained denial of service."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-19T16:38:42.442Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/0d11b2a10269ace29832f584d207ff3768f79dc5"
        },
        {
          "url": "https://git.kernel.org/stable/c/4a77f1d72c6db04cbbfab0250292ac71fdea5f0a"
        },
        {
          "url": "https://git.kernel.org/stable/c/513d847f7a95bbdbeaaf55fb942c38992587734f"
        },
        {
          "url": "https://git.kernel.org/stable/c/25b528816f5d83be5236dc182692369e8c9402b0"
        },
        {
          "url": "https://git.kernel.org/stable/c/689082a4cb166a7ae9729f7b12339e69fdad6c52"
        },
        {
          "url": "https://git.kernel.org/stable/c/1b722740ac5c2b2070f9ba922f4e0f227faf0246"
        },
        {
          "url": "https://git.kernel.org/stable/c/4ad2972ef0e1bd1018ad7a72661a4636ed7daecc"
        },
        {
          "url": "https://git.kernel.org/stable/c/d0b704e569ac3b8416d8e02270cdc9bf830ed395"
        }
      ],
      "title": "hwmon: (nct6775-core) Prevent access to unsupported weight registers",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74549",
    "datePublished": "2026-08-15T12:27:56.993Z",
    "dateReserved": "2026-08-15T05:44:03.915Z",
    "dateUpdated": "2026-08-19T16:38:42.442Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…