{"id":"CVE-2026-68357","state":"PUBLISHED","title":"watchdog: pretimeout: Fix UAF in watchdog_unregister_governor()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nwatchdog: pretimeout: Fix UAF in watchdog_unregister_governor()\n\nWhen a watchdog governor is unregistered, it updates existing watchdog\ndevices that were using this governor by falling back to `default_gov`.\n\nIf the governor being unregistered is currently set as `default_gov`,\nthe `default_gov` is never cleared.  This leads to 2 use-after-free\nissues:\n1. New watchdog devices registered after this point will inherit the\n   dangling `default_gov`.\n2. Existing watchdog devices using the unregistered governor will have\n   their `wdd->gov` reassigned to the dangling `default_gov`.\n\nFix the UAF by clearing `default_gov` if it matches the governor being\nunregistered.","publishedAt":"2026-08-10T12:03:34.241Z","updatedAt":"2026-08-19T16:34:05.347Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"b9ae33faa96bdec6bc60e4c5f8f53786182e4207","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"472ec1e34ff0bb26379805cae808f658cce58c35","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"7a2ee3ec6f208307eca1119a343c7b5d39c03708","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"2e47b91b9b4020fcc01def14d6b6556d66074cf4","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"0ca252720f0e38411cfec3431db9bb1aed0a412c","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"7d1658b066de30f4b23afc14814d22416a971e6e","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"7993d626983cc58fbde9607333cfd2d57725c197","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"7362ba0f9c96ac3ad6a2ca3995bd9fc9a28a8661","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/watchdog/watchdog_pretimeout.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.9","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.9","versionType":"semver"},{"version":"5.10.265","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.148","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.101","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.42","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.6","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/watchdog/watchdog_pretimeout.c"]}],"references":["https://git.kernel.org/stable/c/b9ae33faa96bdec6bc60e4c5f8f53786182e4207","https://git.kernel.org/stable/c/472ec1e34ff0bb26379805cae808f658cce58c35","https://git.kernel.org/stable/c/7a2ee3ec6f208307eca1119a343c7b5d39c03708","https://git.kernel.org/stable/c/2e47b91b9b4020fcc01def14d6b6556d66074cf4","https://git.kernel.org/stable/c/0ca252720f0e38411cfec3431db9bb1aed0a412c","https://git.kernel.org/stable/c/7d1658b066de30f4b23afc14814d22416a971e6e","https://git.kernel.org/stable/c/7993d626983cc58fbde9607333cfd2d57725c197","https://git.kernel.org/stable/c/7362ba0f9c96ac3ad6a2ca3995bd9fc9a28a8661"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:49.727Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/68xxx/CVE-2026-68357.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-68357","state":"PUBLISHED","datePublished":"2026-08-10T12:03:34.241Z","dateUpdated":"2026-08-19T16:34:05.347Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-30T09:28:09.385Z"},"containers":{"cna":{"title":"watchdog: pretimeout: Fix UAF in watchdog_unregister_governor()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nwatchdog: pretimeout: Fix UAF in watchdog_unregister_governor()\n\nWhen a watchdog governor is unregistered, it updates existing watchdog\ndevices that were using this governor by falling back to `default_gov`.\n\nIf the governor being unregistered is currently set as `default_gov`,\nthe `default_gov` is never cleared.  This leads to 2 use-after-free\nissues:\n1. New watchdog devices registered after this point will inherit the\n   dangling `default_gov`.\n2. Existing watchdog devices using the unregistered governor will have\n   their `wdd->gov` reassigned to the dangling `default_gov`.\n\nFix the UAF by clearing `default_gov` if it matches the governor being\nunregistered."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"b9ae33faa96bdec6bc60e4c5f8f53786182e4207","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"472ec1e34ff0bb26379805cae808f658cce58c35","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"7a2ee3ec6f208307eca1119a343c7b5d39c03708","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"2e47b91b9b4020fcc01def14d6b6556d66074cf4","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"0ca252720f0e38411cfec3431db9bb1aed0a412c","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"7d1658b066de30f4b23afc14814d22416a971e6e","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"7993d626983cc58fbde9607333cfd2d57725c197","versionType":"git"},{"version":"da0d12ff2b829a35e9921918e925d79497b82bef","status":"affected","lessThan":"7362ba0f9c96ac3ad6a2ca3995bd9fc9a28a8661","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/watchdog/watchdog_pretimeout.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.9","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.9","versionType":"semver"},{"version":"5.10.265","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.148","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.101","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.42","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.6","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/watchdog/watchdog_pretimeout.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/b9ae33faa96bdec6bc60e4c5f8f53786182e4207"},{"url":"https://git.kernel.org/stable/c/472ec1e34ff0bb26379805cae808f658cce58c35"},{"url":"https://git.kernel.org/stable/c/7a2ee3ec6f208307eca1119a343c7b5d39c03708"},{"url":"https://git.kernel.org/stable/c/2e47b91b9b4020fcc01def14d6b6556d66074cf4"},{"url":"https://git.kernel.org/stable/c/0ca252720f0e38411cfec3431db9bb1aed0a412c"},{"url":"https://git.kernel.org/stable/c/7d1658b066de30f4b23afc14814d22416a971e6e"},{"url":"https://git.kernel.org/stable/c/7993d626983cc58fbde9607333cfd2d57725c197"},{"url":"https://git.kernel.org/stable/c/7362ba0f9c96ac3ad6a2ca3995bd9fc9a28a8661"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-19T16:34:05.347Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"5.10.265"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"5.15.216"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"6.1.183"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"6.6.148"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"6.12.101"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"6.18.42"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"7.1.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}