{"id":"CVE-2023-53234","state":"PUBLISHED","title":"watchdog: Fix kmemleak in watchdog_cdev_register","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nwatchdog: Fix kmemleak in watchdog_cdev_register\n\nkmemleak reports memory leaks in watchdog_dev_register, as follows:\nunreferenced object 0xffff888116233000 (size 2048):\n  comm \"\"modprobe\"\", pid 28147, jiffies 4353426116 (age 61.741s)\n  hex dump (first 32 bytes):\n    80 fa b9 05 81 88 ff ff 08 30 23 16 81 88 ff ff  .........0#.....\n    08 30 23 16 81 88 ff ff 00 00 00 00 00 00 00 00  .0#.............\n  backtrace:\n    [<000000007f001ffd>] __kmem_cache_alloc_node+0x157/0x220\n    [<000000006a389304>] kmalloc_trace+0x21/0x110\n    [<000000008d640eea>] watchdog_dev_register+0x4e/0x780 [watchdog]\n    [<0000000053c9f248>] __watchdog_register_device+0x4f0/0x680 [watchdog]\n    [<00000000b2979824>] watchdog_register_device+0xd2/0x110 [watchdog]\n    [<000000001f730178>] 0xffffffffc10880ae\n    [<000000007a1a8bcc>] do_one_initcall+0xcb/0x4d0\n    [<00000000b98be325>] do_init_module+0x1ca/0x5f0\n    [<0000000046d08e7c>] load_module+0x6133/0x70f0\n    ...\n\nunreferenced object 0xffff888105b9fa80 (size 16):\n  comm \"\"modprobe\"\", pid 28147, jiffies 4353426116 (age 61.741s)\n  hex dump (first 16 bytes):\n    77 61 74 63 68 64 6f 67 31 00 b9 05 81 88 ff ff  watchdog1.......\n  backtrace:\n    [<000000007f001ffd>] __kmem_cache_alloc_node+0x157/0x220\n    [<00000000486ab89b>] __kmalloc_node_track_caller+0x44/0x1b0\n    [<000000005a39aab0>] kvasprintf+0xb5/0x140\n    [<0000000024806f85>] kvasprintf_const+0x55/0x180\n    [<000000009276cb7f>] kobject_set_name_vargs+0x56/0x150\n    [<00000000a92e820b>] dev_set_name+0xab/0xe0\n    [<00000000cec812c6>] watchdog_dev_register+0x285/0x780 [watchdog]\n    [<0000000053c9f248>] __watchdog_register_device+0x4f0/0x680 [watchdog]\n    [<00000000b2979824>] watchdog_register_device+0xd2/0x110 [watchdog]\n    [<000000001f730178>] 0xffffffffc10880ae\n    [<000000007a1a8bcc>] do_one_initcall+0xcb/0x4d0\n    [<00000000b98be325>] do_init_module+0x1ca/0x5f0\n    [<0000000046d08e7c>] load_module+0x6133/0x70f0\n    ...\n\nThe reason is that put_device is not be called if cdev_device_add fails\nand wdd->id != 0.\n\nwatchdog_cdev_register\n  wd_data = kzalloc                             [1]\n  err = dev_set_name                            [2]\n  ..\n  err = cdev_device_add\n  if (err) {\n    if (wdd->id == 0) {  // wdd->id != 0\n      ..\n    }\n    return err;  // [1],[2] would be leaked\n\nTo fix it, call put_device in all wdd->id cases.","publishedAt":"2025-09-15T14:22:07.219Z","updatedAt":"2026-05-23T15:28:21.133Z","severity":{"score":5.5,"label":"Medium","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","source":"CISA-ADP"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"450caf1faa0d7bbbd1da93d3ee8c5edea7bc51a8","status":"affected","lessThan":"bf26b0e430ce34261f45959989edaf680b64d538","versionType":"git"},{"version":"f4c36f1999745c2160422fe2f362deadbe3a136b","status":"affected","lessThan":"8c1655600f4f2839fb844fe8c70b2b65fadc7a56","versionType":"git"},{"version":"ca7851d46de8a8d69022c4e5feed0820483b5f46","status":"affected","lessThan":"59e391b3fc507a15b7e8e9d9f4de87cae177c366","versionType":"git"},{"version":"72139dfa2464e43957d330266994740bb7be2535","status":"affected","lessThan":"c5a21a5501508ae3afa2fe6d5a3e74a37fa48df3","versionType":"git"},{"version":"72139dfa2464e43957d330266994740bb7be2535","status":"affected","lessThan":"23cc41c3f19c4d858c3708f1c0a06e94958e6c3b","versionType":"git"},{"version":"72139dfa2464e43957d330266994740bb7be2535","status":"affected","lessThan":"ac099d94e0480c937aa9172ab64074981ca1a4d3","versionType":"git"},{"version":"72139dfa2464e43957d330266994740bb7be2535","status":"affected","lessThan":"50808d034e199fe3ff7a9d2068a4eebeb6b4098a","versionType":"git"},{"version":"72139dfa2464e43957d330266994740bb7be2535","status":"affected","lessThan":"13721a2ac66b246f5802ba1b75ad8637e53eeecc","versionType":"git"},{"version":"f76905ce52653e8a821963c35d9013cff19b1399","status":"affected","versionType":"git"},{"version":"4.14.182","status":"affected","lessThan":"4.14.308","versionType":"semver"},{"version":"4.19.93","status":"affected","lessThan":"4.19.276","versionType":"semver"},{"version":"5.4.8","status":"affected","lessThan":"5.4.235","versionType":"semver"},{"version":"4.9.225","status":"affected","lessThan":"4.10","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/watchdog/watchdog_dev.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.5","versionType":"semver"},{"version":"4.14.308","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.276","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.235","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.173","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.100","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.18","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.2.5","status":"unaffected","lessThanOrEqual":"6.2.*","versionType":"semver"},{"version":"6.3","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_dev.c"]}],"references":["https://git.kernel.org/stable/c/bf26b0e430ce34261f45959989edaf680b64d538","https://git.kernel.org/stable/c/8c1655600f4f2839fb844fe8c70b2b65fadc7a56","https://git.kernel.org/stable/c/59e391b3fc507a15b7e8e9d9f4de87cae177c366","https://git.kernel.org/stable/c/c5a21a5501508ae3afa2fe6d5a3e74a37fa48df3","https://git.kernel.org/stable/c/23cc41c3f19c4d858c3708f1c0a06e94958e6c3b","https://git.kernel.org/stable/c/ac099d94e0480c937aa9172ab64074981ca1a4d3","https://git.kernel.org/stable/c/50808d034e199fe3ff7a9d2068a4eebeb6b4098a","https://git.kernel.org/stable/c/13721a2ac66b246f5802ba1b75ad8637e53eeecc"],"weaknesses":["CWE-401"],"ingestedAt":"2026-10-29T20:06:33.064Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2023/53xxx/CVE-2023-53234.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-53234","state":"PUBLISHED","datePublished":"2025-09-15T14:22:07.219Z","dateUpdated":"2026-05-23T15:28:21.133Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-09-15T14:19:21.847Z"},"containers":{"cna":{"title":"watchdog: Fix kmemleak in watchdog_cdev_register","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nwatchdog: Fix kmemleak in watchdog_cdev_register\n\nkmemleak reports memory leaks in watchdog_dev_register, as follows:\nunreferenced object 0xffff888116233000 (size 2048):\n  comm \"\"modprobe\"\", pid 28147, jiffies 4353426116 (age 61.741s)\n  hex dump (first 32 bytes):\n    80 fa b9 05 81 88 ff ff 08 30 23 16 81 88 ff ff  .........0#.....\n    08 30 23 16 81 88 ff ff 00 00 00 00 00 00 00 00  .0#.............\n  backtrace:\n    [<000000007f001ffd>] __kmem_cache_alloc_node+0x157/0x220\n    [<000000006a389304>] kmalloc_trace+0x21/0x110\n    [<000000008d640eea>] watchdog_dev_register+0x4e/0x780 [watchdog]\n    [<0000000053c9f248>] __watchdog_register_device+0x4f0/0x680 [watchdog]\n    [<00000000b2979824>] watchdog_register_device+0xd2/0x110 [watchdog]\n    [<000000001f730178>] 0xffffffffc10880ae\n    [<000000007a1a8bcc>] do_one_initcall+0xcb/0x4d0\n    [<00000000b98be325>] do_init_module+0x1ca/0x5f0\n    [<0000000046d08e7c>] load_module+0x6133/0x70f0\n    ...\n\nunreferenced object 0xffff888105b9fa80 (size 16):\n  comm \"\"modprobe\"\", pid 28147, jiffies 4353426116 (age 61.741s)\n  hex dump (first 16 bytes):\n    77 61 74 63 68 64 6f 67 31 00 b9 05 81 88 ff ff  watchdog1.......\n  backtrace:\n    [<000000007f001ffd>] __kmem_cache_alloc_node+0x157/0x220\n    [<00000000486ab89b>] __kmalloc_node_track_caller+0x44/0x1b0\n    [<000000005a39aab0>] kvasprintf+0xb5/0x140\n    [<0000000024806f85>] kvasprintf_const+0x55/0x180\n    [<000000009276cb7f>] kobject_set_name_vargs+0x56/0x150\n    [<00000000a92e820b>] dev_set_name+0xab/0xe0\n    [<00000000cec812c6>] watchdog_dev_register+0x285/0x780 [watchdog]\n    [<0000000053c9f248>] __watchdog_register_device+0x4f0/0x680 [watchdog]\n    [<00000000b2979824>] watchdog_register_device+0xd2/0x110 [watchdog]\n    [<000000001f730178>] 0xffffffffc10880ae\n    [<000000007a1a8bcc>] do_one_initcall+0xcb/0x4d0\n    [<00000000b98be325>] do_init_module+0x1ca/0x5f0\n    [<0000000046d08e7c>] load_module+0x6133/0x70f0\n    ...\n\nThe reason is that put_device is not be called if cdev_device_add fails\nand wdd->id != 0.\n\nwatchdog_cdev_register\n  wd_data = kzalloc                             [1]\n  err = dev_set_name                            [2]\n  ..\n  err = cdev_device_add\n  if (err) {\n    if (wdd->id == 0) {  // wdd->id != 0\n      ..\n    }\n    return err;  // [1],[2] would be leaked\n\nTo fix it, call put_device in all wdd->id cases."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"450caf1faa0d7bbbd1da93d3ee8c5edea7bc51a8","status":"affected","lessThan":"bf26b0e430ce34261f45959989edaf680b64d538","versionType":"git"},{"version":"f4c36f1999745c2160422fe2f362deadbe3a136b","status":"affected","lessThan":"8c1655600f4f2839fb844fe8c70b2b65fadc7a56","versionType":"git"},{"version":"ca7851d46de8a8d69022c4e5feed0820483b5f46","status":"affected","lessThan":"59e391b3fc507a15b7e8e9d9f4de87cae177c366","versionType":"git"},{"version":"72139dfa2464e43957d330266994740bb7be2535","status":"affected","lessThan":"c5a21a5501508ae3afa2fe6d5a3e74a37fa48df3","versionType":"git"},{"version":"72139dfa2464e43957d330266994740bb7be2535","status":"affected","lessThan":"23cc41c3f19c4d858c3708f1c0a06e94958e6c3b","versionType":"git"},{"version":"72139dfa2464e43957d330266994740bb7be2535","status":"affected","lessThan":"ac099d94e0480c937aa9172ab64074981ca1a4d3","versionType":"git"},{"version":"72139dfa2464e43957d330266994740bb7be2535","status":"affected","lessThan":"50808d034e199fe3ff7a9d2068a4eebeb6b4098a","versionType":"git"},{"version":"72139dfa2464e43957d330266994740bb7be2535","status":"affected","lessThan":"13721a2ac66b246f5802ba1b75ad8637e53eeecc","versionType":"git"},{"version":"f76905ce52653e8a821963c35d9013cff19b1399","status":"affected","versionType":"git"},{"version":"4.14.182","status":"affected","lessThan":"4.14.308","versionType":"semver"},{"version":"4.19.93","status":"affected","lessThan":"4.19.276","versionType":"semver"},{"version":"5.4.8","status":"affected","lessThan":"5.4.235","versionType":"semver"},{"version":"4.9.225","status":"affected","lessThan":"4.10","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/watchdog/watchdog_dev.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.5","versionType":"semver"},{"version":"4.14.308","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.276","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.235","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.173","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.100","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.18","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.2.5","status":"unaffected","lessThanOrEqual":"6.2.*","versionType":"semver"},{"version":"6.3","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_dev.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/bf26b0e430ce34261f45959989edaf680b64d538"},{"url":"https://git.kernel.org/stable/c/8c1655600f4f2839fb844fe8c70b2b65fadc7a56"},{"url":"https://git.kernel.org/stable/c/59e391b3fc507a15b7e8e9d9f4de87cae177c366"},{"url":"https://git.kernel.org/stable/c/c5a21a5501508ae3afa2fe6d5a3e74a37fa48df3"},{"url":"https://git.kernel.org/stable/c/23cc41c3f19c4d858c3708f1c0a06e94958e6c3b"},{"url":"https://git.kernel.org/stable/c/ac099d94e0480c937aa9172ab64074981ca1a4d3"},{"url":"https://git.kernel.org/stable/c/50808d034e199fe3ff7a9d2068a4eebeb6b4098a"},{"url":"https://git.kernel.org/stable/c/13721a2ac66b246f5802ba1b75ad8637e53eeecc"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-23T15:28:21.133Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14.182","versionEndExcluding":"4.14.308"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.93","versionEndExcluding":"4.19.276"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4.8","versionEndExcluding":"5.4.235"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"5.10.173"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"5.15.100"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"6.1.18"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"6.2.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"6.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9.225"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":5.5,"attackVector":"LOCAL","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"id":"CVE-2023-53234","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-01-14T17:55:57.957947Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-401","lang":"en","type":"CWE","description":"CWE-401 Missing Release of Memory after Effective Lifetime"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-01-14T18:02:49.667Z"}}]}}}