CVE-2023-53234

watchdog: Fix kmemleak in watchdog_cdev_register

State
Published
Severity
5.5 Medium
Published
Sep 15, 2025
Updated
May 23, 2026
Reserved
Sep 15, 2025

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

watchdog: Fix kmemleak in watchdog_cdev_register

kmemleak reports memory leaks in watchdog_dev_register, as follows: unreferenced object 0xffff888116233000 (size 2048): comm ""modprobe"", pid 28147, jiffies 4353426116 (age 61.741s) hex dump (first 32 bytes): 80 fa b9 05 81 88 ff ff 08 30 23 16 81 88 ff ff .........0#..... 08 30 23 16 81 88 ff ff 00 00 00 00 00 00 00 00 .0#............. backtrace: [<000000007f001ffd>] __kmem_cache_alloc_node+0x157/0x220 [<000000006a389304>] kmalloc_trace+0x21/0x110 [<000000008d640eea>] watchdog_dev_register+0x4e/0x780 [watchdog] [<0000000053c9f248>] __watchdog_register_device+0x4f0/0x680 [watchdog] [<00000000b2979824>] watchdog_register_device+0xd2/0x110 [watchdog] [<000000001f730178>] 0xffffffffc10880ae [<000000007a1a8bcc>] do_one_initcall+0xcb/0x4d0 [<00000000b98be325>] do_init_module+0x1ca/0x5f0 [<0000000046d08e7c>] load_module+0x6133/0x70f0 ...

unreferenced object 0xffff888105b9fa80 (size 16): comm ""modprobe"", pid 28147, jiffies 4353426116 (age 61.741s) hex dump (first 16 bytes): 77 61 74 63 68 64 6f 67 31 00 b9 05 81 88 ff ff watchdog1....... backtrace: [<000000007f001ffd>] __kmem_cache_alloc_node+0x157/0x220 [<00000000486ab89b>] __kmalloc_node_track_caller+0x44/0x1b0 [<000000005a39aab0>] kvasprintf+0xb5/0x140 [<0000000024806f85>] kvasprintf_const+0x55/0x180 [<000000009276cb7f>] kobject_set_name_vargs+0x56/0x150 [<00000000a92e820b>] dev_set_name+0xab/0xe0 [<00000000cec812c6>] watchdog_dev_register+0x285/0x780 [watchdog] [<0000000053c9f248>] __watchdog_register_device+0x4f0/0x680 [watchdog] [<00000000b2979824>] watchdog_register_device+0xd2/0x110 [watchdog] [<000000001f730178>] 0xffffffffc10880ae [<000000007a1a8bcc>] do_one_initcall+0xcb/0x4d0 [<00000000b98be325>] do_init_module+0x1ca/0x5f0 [<0000000046d08e7c>] load_module+0x6133/0x70f0 ...

The reason is that put_device is not be called if cdev_device_add fails and wdd->id != 0.

watchdog_cdev_register wd_data = kzalloc [1] err = dev_set_name [2] .. err = cdev_device_add if (err) { if (wdd->id == 0) { // wdd->id != 0 .. } return err; // [1],[2] would be leaked

To fix it, call put_device in all wdd->id cases.

Scores

CVSSScoreVectorSource
3.15.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HCISA-ADP

Weaknesses

  • CWE-401 Missing Release of Memory after Effective Lifetime

Affected Products

ProductVersions
LinuxLinux
  • 450caf1faa0d7bbbd1da93d3ee8c5edea7bc51a8 to before bf26b0e430ce34261f45959989edaf680b64d538Affected
  • f4c36f1999745c2160422fe2f362deadbe3a136b to before 8c1655600f4f2839fb844fe8c70b2b65fadc7a56Affected
  • ca7851d46de8a8d69022c4e5feed0820483b5f46 to before 59e391b3fc507a15b7e8e9d9f4de87cae177c366Affected
  • 72139dfa2464e43957d330266994740bb7be2535 to before c5a21a5501508ae3afa2fe6d5a3e74a37fa48df3Affected
  • 72139dfa2464e43957d330266994740bb7be2535 to before 23cc41c3f19c4d858c3708f1c0a06e94958e6c3bAffected
  • 72139dfa2464e43957d330266994740bb7be2535 to before ac099d94e0480c937aa9172ab64074981ca1a4d3Affected
  • 72139dfa2464e43957d330266994740bb7be2535 to before 50808d034e199fe3ff7a9d2068a4eebeb6b4098aAffected
  • 72139dfa2464e43957d330266994740bb7be2535 to before 13721a2ac66b246f5802ba1b75ad8637e53eeeccAffected
  • f76905ce52653e8a821963c35d9013cff19b1399Affected
  • 4.14.182 to before 4.14.308Affected
  • 4.19.93 to before 4.19.276Affected
  • 5.4.8 to before 5.4.235Affected
  • 4.9.225 to before 4.10Affected
LinuxLinux
  • 5.5Affected
  • before 5.5Not affected
  • 4.14.308 through 4.14.*Not affected
  • 4.19.276 through 4.19.*Not affected
  • 5.4.235 through 5.4.*Not affected
  • 5.10.173 through 5.10.*Not affected
  • 5.15.100 through 5.15.*Not affected
  • 6.1.18 through 6.1.*Not affected
  • 6.2.5 through 6.2.*Not affected
  • 6.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.