{"id":"CVE-2024-41006","state":"PUBLISHED","title":"netrom: Fix a memory leak in nr_heartbeat_expiry()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetrom: Fix a memory leak in nr_heartbeat_expiry()\n\nsyzbot reported a memory leak in nr_create() [0].\n\nCommit 409db27e3a2e (\"netrom: Fix use-after-free of a listening socket.\")\nadded sock_hold() to the nr_heartbeat_expiry() function, where\na) a socket has a SOCK_DESTROY flag or\nb) a listening socket has a SOCK_DEAD flag.\n\nBut in the case \"a,\" when the SOCK_DESTROY flag is set, the file descriptor\nhas already been closed and the nr_release() function has been called.\nSo it makes no sense to hold the reference count because no one will\ncall another nr_destroy_socket() and put it as in the case \"b.\"\n\nnr_connect\n  nr_establish_data_link\n    nr_start_heartbeat\n\nnr_release\n  switch (nr->state)\n  case NR_STATE_3\n    nr->state = NR_STATE_2\n    sock_set_flag(sk, SOCK_DESTROY);\n\n                        nr_rx_frame\n                          nr_process_rx_frame\n                            switch (nr->state)\n                            case NR_STATE_2\n                              nr_state2_machine()\n                                nr_disconnect()\n                                  nr_sk(sk)->state = NR_STATE_0\n                                  sock_set_flag(sk, SOCK_DEAD)\n\n                        nr_heartbeat_expiry\n                          switch (nr->state)\n                          case NR_STATE_0\n                            if (sock_flag(sk, SOCK_DESTROY) ||\n                               (sk->sk_state == TCP_LISTEN\n                                 && sock_flag(sk, SOCK_DEAD)))\n                               sock_hold()  // ( !!! )\n                               nr_destroy_socket()\n\nTo fix the memory leak, let's call sock_hold() only for a listening socket.\n\nFound by InfoTeCS on behalf of Linux Verification Center\n(linuxtesting.org) with Syzkaller.\n\n[0]: https://syzkaller.appspot.com/bug?extid=d327a1f3b12e1e206c16","publishedAt":"2024-07-12T12:44:41.176Z","updatedAt":"2026-10-15T00:47:14.987Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a31caf5779ace8fa98b0d454133808e082ee7a1b","status":"affected","lessThan":"d616876256b38ecf9a1a1c7d674192c5346bc69c","versionType":"git"},{"version":"fe9b9e621cebe6b7e83f7e954c70f8bb430520e5","status":"affected","lessThan":"e07a9c2a850cdebf625e7a1b8171bd23a8554313","versionType":"git"},{"version":"7de16d75b20ab13b75a7291f449a1b00090edfea","status":"affected","lessThan":"5391f9db2cab5ef1cb411be1ab7dbec728078fba","versionType":"git"},{"version":"d2d3ab1b1de3302de2c85769121fd4f890e47ceb","status":"affected","lessThan":"280cf1173726a7059b628c610c71050d5c0b6937","versionType":"git"},{"version":"51e394c6f81adbfe7c34d15f58b3d4d44f144acf","status":"affected","lessThan":"a02fd5d775cf9787ee7698c797e20f2fa13d2e2b","versionType":"git"},{"version":"409db27e3a2eb5e8ef7226ca33be33361b3ed1c9","status":"affected","lessThan":"b6ebe4fed73eedeb73f4540f8edc4871945474c8","versionType":"git"},{"version":"409db27e3a2eb5e8ef7226ca33be33361b3ed1c9","status":"affected","lessThan":"d377f5a28332954b19e373d36823e59830ab1712","versionType":"git"},{"version":"409db27e3a2eb5e8ef7226ca33be33361b3ed1c9","status":"affected","lessThan":"0b9130247f3b6a1122478471ff0e014ea96bb735","versionType":"git"},{"version":"e666990abb2e42dd4ba979b4706280a3664cfae7","status":"affected","versionType":"git"},{"version":"4.19.272","status":"affected","lessThan":"4.19.317","versionType":"semver"},{"version":"5.4.231","status":"affected","lessThan":"5.4.279","versionType":"semver"},{"version":"5.10.166","status":"affected","lessThan":"5.10.221","versionType":"semver"},{"version":"5.15.91","status":"affected","lessThan":"5.15.162","versionType":"semver"},{"version":"6.1.9","status":"affected","lessThan":"6.1.96","versionType":"semver"},{"version":"4.14.305","status":"affected","lessThan":"4.15","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netrom/nr_timer.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.2","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.2","versionType":"semver"},{"version":"4.19.317","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.279","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.221","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.162","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.96","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.36","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.9.7","status":"unaffected","lessThanOrEqual":"6.9.*","versionType":"semver"},{"version":"6.10","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netrom/nr_timer.c"]}],"references":["https://git.kernel.org/stable/c/d616876256b38ecf9a1a1c7d674192c5346bc69c","https://git.kernel.org/stable/c/e07a9c2a850cdebf625e7a1b8171bd23a8554313","https://git.kernel.org/stable/c/5391f9db2cab5ef1cb411be1ab7dbec728078fba","https://git.kernel.org/stable/c/280cf1173726a7059b628c610c71050d5c0b6937","https://git.kernel.org/stable/c/a02fd5d775cf9787ee7698c797e20f2fa13d2e2b","https://git.kernel.org/stable/c/b6ebe4fed73eedeb73f4540f8edc4871945474c8","https://git.kernel.org/stable/c/d377f5a28332954b19e373d36823e59830ab1712","https://git.kernel.org/stable/c/0b9130247f3b6a1122478471ff0e014ea96bb735","https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html","https://cert-portal.siemens.com/productcert/html/ssa-265688.html","https://cert-portal.siemens.com/productcert/html/ssa-613116.html","https://cert-portal.siemens.com/productcert/html/ssa-355557.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:07:39.287Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/41xxx/CVE-2024-41006.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-41006","state":"PUBLISHED","datePublished":"2024-07-12T12:44:41.176Z","dateUpdated":"2026-10-15T00:47:14.987Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-07-12T12:17:45.610Z"},"containers":{"cna":{"title":"netrom: Fix a memory leak in nr_heartbeat_expiry()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetrom: Fix a memory leak in nr_heartbeat_expiry()\n\nsyzbot reported a memory leak in nr_create() [0].\n\nCommit 409db27e3a2e (\"netrom: Fix use-after-free of a listening socket.\")\nadded sock_hold() to the nr_heartbeat_expiry() function, where\na) a socket has a SOCK_DESTROY flag or\nb) a listening socket has a SOCK_DEAD flag.\n\nBut in the case \"a,\" when the SOCK_DESTROY flag is set, the file descriptor\nhas already been closed and the nr_release() function has been called.\nSo it makes no sense to hold the reference count because no one will\ncall another nr_destroy_socket() and put it as in the case \"b.\"\n\nnr_connect\n  nr_establish_data_link\n    nr_start_heartbeat\n\nnr_release\n  switch (nr->state)\n  case NR_STATE_3\n    nr->state = NR_STATE_2\n    sock_set_flag(sk, SOCK_DESTROY);\n\n                        nr_rx_frame\n                          nr_process_rx_frame\n                            switch (nr->state)\n                            case NR_STATE_2\n                              nr_state2_machine()\n                                nr_disconnect()\n                                  nr_sk(sk)->state = NR_STATE_0\n                                  sock_set_flag(sk, SOCK_DEAD)\n\n                        nr_heartbeat_expiry\n                          switch (nr->state)\n                          case NR_STATE_0\n                            if (sock_flag(sk, SOCK_DESTROY) ||\n                               (sk->sk_state == TCP_LISTEN\n                                 && sock_flag(sk, SOCK_DEAD)))\n                               sock_hold()  // ( !!! )\n                               nr_destroy_socket()\n\nTo fix the memory leak, let's call sock_hold() only for a listening socket.\n\nFound by InfoTeCS on behalf of Linux Verification Center\n(linuxtesting.org) with Syzkaller.\n\n[0]: https://syzkaller.appspot.com/bug?extid=d327a1f3b12e1e206c16"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a31caf5779ace8fa98b0d454133808e082ee7a1b","status":"affected","lessThan":"d616876256b38ecf9a1a1c7d674192c5346bc69c","versionType":"git"},{"version":"fe9b9e621cebe6b7e83f7e954c70f8bb430520e5","status":"affected","lessThan":"e07a9c2a850cdebf625e7a1b8171bd23a8554313","versionType":"git"},{"version":"7de16d75b20ab13b75a7291f449a1b00090edfea","status":"affected","lessThan":"5391f9db2cab5ef1cb411be1ab7dbec728078fba","versionType":"git"},{"version":"d2d3ab1b1de3302de2c85769121fd4f890e47ceb","status":"affected","lessThan":"280cf1173726a7059b628c610c71050d5c0b6937","versionType":"git"},{"version":"51e394c6f81adbfe7c34d15f58b3d4d44f144acf","status":"affected","lessThan":"a02fd5d775cf9787ee7698c797e20f2fa13d2e2b","versionType":"git"},{"version":"409db27e3a2eb5e8ef7226ca33be33361b3ed1c9","status":"affected","lessThan":"b6ebe4fed73eedeb73f4540f8edc4871945474c8","versionType":"git"},{"version":"409db27e3a2eb5e8ef7226ca33be33361b3ed1c9","status":"affected","lessThan":"d377f5a28332954b19e373d36823e59830ab1712","versionType":"git"},{"version":"409db27e3a2eb5e8ef7226ca33be33361b3ed1c9","status":"affected","lessThan":"0b9130247f3b6a1122478471ff0e014ea96bb735","versionType":"git"},{"version":"e666990abb2e42dd4ba979b4706280a3664cfae7","status":"affected","versionType":"git"},{"version":"4.19.272","status":"affected","lessThan":"4.19.317","versionType":"semver"},{"version":"5.4.231","status":"affected","lessThan":"5.4.279","versionType":"semver"},{"version":"5.10.166","status":"affected","lessThan":"5.10.221","versionType":"semver"},{"version":"5.15.91","status":"affected","lessThan":"5.15.162","versionType":"semver"},{"version":"6.1.9","status":"affected","lessThan":"6.1.96","versionType":"semver"},{"version":"4.14.305","status":"affected","lessThan":"4.15","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netrom/nr_timer.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.2","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.2","versionType":"semver"},{"version":"4.19.317","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.279","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.221","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.162","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.96","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.36","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.9.7","status":"unaffected","lessThanOrEqual":"6.9.*","versionType":"semver"},{"version":"6.10","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netrom/nr_timer.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/d616876256b38ecf9a1a1c7d674192c5346bc69c"},{"url":"https://git.kernel.org/stable/c/e07a9c2a850cdebf625e7a1b8171bd23a8554313"},{"url":"https://git.kernel.org/stable/c/5391f9db2cab5ef1cb411be1ab7dbec728078fba"},{"url":"https://git.kernel.org/stable/c/280cf1173726a7059b628c610c71050d5c0b6937"},{"url":"https://git.kernel.org/stable/c/a02fd5d775cf9787ee7698c797e20f2fa13d2e2b"},{"url":"https://git.kernel.org/stable/c/b6ebe4fed73eedeb73f4540f8edc4871945474c8"},{"url":"https://git.kernel.org/stable/c/d377f5a28332954b19e373d36823e59830ab1712"},{"url":"https://git.kernel.org/stable/c/0b9130247f3b6a1122478471ff0e014ea96bb735"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-23T15:51:25.954Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.272","versionEndExcluding":"4.19.317"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4.231","versionEndExcluding":"5.4.279"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.166","versionEndExcluding":"5.10.221"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.91","versionEndExcluding":"5.15.162"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.9","versionEndExcluding":"6.1.96"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.2","versionEndExcluding":"6.6.36"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.2","versionEndExcluding":"6.9.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.2","versionEndExcluding":"6.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14.305"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/d616876256b38ecf9a1a1c7d674192c5346bc69c","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/e07a9c2a850cdebf625e7a1b8171bd23a8554313","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/5391f9db2cab5ef1cb411be1ab7dbec728078fba","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/280cf1173726a7059b628c610c71050d5c0b6937","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/a02fd5d775cf9787ee7698c797e20f2fa13d2e2b","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/b6ebe4fed73eedeb73f4540f8edc4871945474c8","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/d377f5a28332954b19e373d36823e59830ab1712","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/0b9130247f3b6a1122478471ff0e014ea96bb735","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T21:59:10.100Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2024-41006","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-09-10T17:00:58.734577Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-09-11T17:34:18.546Z"}},{"affected":[{"vendor":"Siemens","product":"RUGGEDCOM RST2428P","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThan":"V3.1","versionType":"custom"}]},{"vendor":"Siemens","product":"SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family","defaultStatus":"unknown","versions":[{"version":"0","status":"unaffected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SCALANCE XCM-/XRM-/XCH-/XRH-300 family","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThan":"V3.1","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 TM MFP - GNU/Linux subsystem","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThan":"V1.1.1","versionType":"custom"}]}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-265688.html"},{"url":"https://cert-portal.siemens.com/productcert/html/ssa-613116.html"},{"url":"https://cert-portal.siemens.com/productcert/html/ssa-355557.html"}],"providerMetadata":{"shortName":"siemens-SADP","orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","dateUpdated":"2026-10-15T00:47:14.987Z"},"x_adpType":"supplier"}]}}}