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).
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"
}
]
}