← Back to CVE Explorer

CVE-2026-90126

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: rtc: pcf8563: fix clock provider leak on unbind pcf8563_clkout_register_clk() registers the CLKOUT clock provider with of_clk_add_provider(), but nothing ever unwinds it: there is no of_clk_del_provider() call and the driver has no remove callback. Each of_clk_add_provider() allocates a struct of_clk_provider, takes a reference on the OF node and adds an entry to the global of_clk_providers list, none of which is released when the device is unbound. Every bind/unbind (or module reload) therefore leaks a provider structure and an of_node reference. The clock itself is already device-managed (devm_clk_register()); only the provider registration was not. Use devm_of_clk_add_hw_provider() so the provider is removed automatically on unbind. Tie it to the parent i2c device, whose OF node carries the #clock-cells and clock-output-names properties (the RTC class device has no OF node of its own).

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-17 17:17:04.937000
Last modified
2026-10-19 09:19:02.217000
View original CVE JSON
{
  "id": "CVE-2026-90126",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-17T17:17:04.937",
  "lastModified": "2026-10-19T09:19:02.217",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nrtc: pcf8563: fix clock provider leak on unbind\n\npcf8563_clkout_register_clk() registers the CLKOUT clock provider with\nof_clk_add_provider(), but nothing ever unwinds it: there is no\nof_clk_del_provider() call and the driver has no remove callback. Each\nof_clk_add_provider() allocates a struct of_clk_provider, takes a\nreference on the OF node and adds an entry to the global of_clk_providers\nlist, none of which is released when the device is unbound. Every\nbind/unbind (or module reload) therefore leaks a provider structure and\nan of_node reference.\n\nThe clock itself is already device-managed (devm_clk_register()); only\nthe provider registration was not. Use devm_of_clk_add_hw_provider() so\nthe provider is removed automatically on unbind. Tie it to the parent\ni2c device, whose OF node carries the #clock-cells and clock-output-names\nproperties (the RTC class device has no OF node of its own)."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/rtc/rtc-pcf8563.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "a39a6405d5f949bc651694028a55d74c514ef1f9",
              "lessThan": "2b5622cf4ee218b6f98d31dbf3fbd44b9b6bd675",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "a39a6405d5f949bc651694028a55d74c514ef1f9",
              "lessThan": "36cb00c33bd83e7ce31b5a9f1f7c70db0cb7776c",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "a39a6405d5f949bc651694028a55d74c514ef1f9",
              "lessThan": "30b7c63af50fe1464e7582a37de1ca4bd030ecc1",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "a39a6405d5f949bc651694028a55d74c514ef1f9",
              "lessThan": "7afb8db47c4f107bce89cfe5115fb31ba7c94665",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "a39a6405d5f949bc651694028a55d74c514ef1f9",
              "lessThan": "97edf3fd9a46ea89a167966991c0449cfa07b36f",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "a39a6405d5f949bc651694028a55d74c514ef1f9",
              "lessThan": "08a59c28c2bdbcd655e99526c86a41dc83834283",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "a39a6405d5f949bc651694028a55d74c514ef1f9",
              "lessThan": "6218c0533a72235ec9c5f41b812c63d963bd4a3e",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "a39a6405d5f949bc651694028a55d74c514ef1f9",
              "lessThan": "9c48a53685040bb0de45a640b34055cbbfc69d4f",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/rtc/rtc-pcf8563.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "4.4",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "4.4",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.270",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.221",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.188",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.157",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.110",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.52",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.6",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/08a59c28c2bdbcd655e99526c86a41dc83834283",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/2b5622cf4ee218b6f98d31dbf3fbd44b9b6bd675",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/30b7c63af50fe1464e7582a37de1ca4bd030ecc1",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/36cb00c33bd83e7ce31b5a9f1f7c70db0cb7776c",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/6218c0533a72235ec9c5f41b812c63d963bd4a3e",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/7afb8db47c4f107bce89cfe5115fb31ba7c94665",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/97edf3fd9a46ea89a167966991c0449cfa07b36f",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/9c48a53685040bb0de45a640b34055cbbfc69d4f",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}