{"id":"CVE-2026-64092","state":"PUBLISHED","title":"batman-adv: tp_meter: fix tp_vars reference leak in receiver shutdown","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nbatman-adv: tp_meter: fix tp_vars reference leak in receiver shutdown\n\nThe receiver shutdown timer handler, batadv_tp_receiver_shutdown(), is\nresponsible for releasing the tp_vars reference it holds. However, the\nexisting logic for coordinating this release with batadv_tp_stop_all() was\nflawed.\n\ntimer_shutdown_sync() guarantees the timer will not fire again after it\nreturns, but it returns non-zero only when the timer was pending at the\ntime of the call. If the timer had already expired (and\nbatadv_tp_stop_all() would unsucessfully try to  rearm itself),\nbatadv_tp_stop_all() skips its batadv_tp_vars_put(), and\nbatadv_tp_receiver_shutdown() fails to put its own reference as well.\n\nFix this by introducing a new atomic variable receiving that is set to 1\nwhen the receiver is initialized and cleared atomically with atomic_xchg()\nby whichever side claims it first. Only the side that observes the\ntransition from 1 to 0 is responsible for releasing the tp_vars timer\nreference, eliminating the uncertainty.","publishedAt":"2026-07-19T15:40:00.603Z","updatedAt":"2026-07-19T15:40:00.603Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"268078acae72daa12b17b2b299701cb9924e469a","status":"affected","lessThan":"7715c73f33260af724d734c41b794457e9be8dbc","versionType":"git"},{"version":"58943b7ea356294749dae3e75b96c0ee292c00be","status":"affected","lessThan":"297e1bc4a915b7cd3e65a79ed906b23fb3d7aaae","versionType":"git"},{"version":"79bc0eaeef2c5797317bf2da8e3159a74d62ec47","status":"affected","lessThan":"0b1bedf114ea93fef929b31f0d70a9eedcc601de","versionType":"git"},{"version":"26dfeee8db81354bfdade155f27f9e16510ad196","status":"affected","lessThan":"a9f0bfd624ee8a286d6fd2bf0f796e730efb49b0","versionType":"git"},{"version":"03660dab86f93319178a24667f6998526dc4355d","status":"affected","lessThan":"b285bc0a97f43823a4967fb6d286de4c7f53d541","versionType":"git"},{"version":"8634c1dbd73adb74d40533ebb7e914efb82e71fb","status":"affected","lessThan":"d078501dde9b57210f1808cdef4b59463d1f5fc8","versionType":"git"},{"version":"3d3cf6a7314aca4df0a6dde28ce784a2a30d0166","status":"affected","lessThan":"77098e4bea37af51d3962efa88a5af2ea5e1ac57","versionType":"git"},{"version":"5e7d0ac936354c36810e74ac3056b334ed1f4058","status":"affected","versionType":"git"},{"version":"5.10.259","status":"affected","lessThan":"5.11","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/batman-adv/tp_meter.c","net/batman-adv/types.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6.6.140","status":"affected","lessThan":"6.6.142","versionType":"semver"},{"version":"6.12.90","status":"affected","lessThan":"6.12.92","versionType":"semver"},{"version":"6.18.32","status":"affected","lessThan":"6.18.34","versionType":"semver"},{"version":"7.0.9","status":"affected","lessThan":"7.0.11","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/batman-adv/tp_meter.c","net/batman-adv/types.h"]}],"references":["https://git.kernel.org/stable/c/7715c73f33260af724d734c41b794457e9be8dbc","https://git.kernel.org/stable/c/297e1bc4a915b7cd3e65a79ed906b23fb3d7aaae","https://git.kernel.org/stable/c/0b1bedf114ea93fef929b31f0d70a9eedcc601de","https://git.kernel.org/stable/c/a9f0bfd624ee8a286d6fd2bf0f796e730efb49b0","https://git.kernel.org/stable/c/b285bc0a97f43823a4967fb6d286de4c7f53d541","https://git.kernel.org/stable/c/d078501dde9b57210f1808cdef4b59463d1f5fc8","https://git.kernel.org/stable/c/77098e4bea37af51d3962efa88a5af2ea5e1ac57"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64092.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64092","state":"PUBLISHED","datePublished":"2026-07-19T15:40:00.603Z","dateUpdated":"2026-07-19T15:40:00.603Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T07:54:57.032Z"},"containers":{"cna":{"title":"batman-adv: tp_meter: fix tp_vars reference leak in receiver shutdown","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nbatman-adv: tp_meter: fix tp_vars reference leak in receiver shutdown\n\nThe receiver shutdown timer handler, batadv_tp_receiver_shutdown(), is\nresponsible for releasing the tp_vars reference it holds. However, the\nexisting logic for coordinating this release with batadv_tp_stop_all() was\nflawed.\n\ntimer_shutdown_sync() guarantees the timer will not fire again after it\nreturns, but it returns non-zero only when the timer was pending at the\ntime of the call. If the timer had already expired (and\nbatadv_tp_stop_all() would unsucessfully try to  rearm itself),\nbatadv_tp_stop_all() skips its batadv_tp_vars_put(), and\nbatadv_tp_receiver_shutdown() fails to put its own reference as well.\n\nFix this by introducing a new atomic variable receiving that is set to 1\nwhen the receiver is initialized and cleared atomically with atomic_xchg()\nby whichever side claims it first. Only the side that observes the\ntransition from 1 to 0 is responsible for releasing the tp_vars timer\nreference, eliminating the uncertainty."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"268078acae72daa12b17b2b299701cb9924e469a","status":"affected","lessThan":"7715c73f33260af724d734c41b794457e9be8dbc","versionType":"git"},{"version":"58943b7ea356294749dae3e75b96c0ee292c00be","status":"affected","lessThan":"297e1bc4a915b7cd3e65a79ed906b23fb3d7aaae","versionType":"git"},{"version":"79bc0eaeef2c5797317bf2da8e3159a74d62ec47","status":"affected","lessThan":"0b1bedf114ea93fef929b31f0d70a9eedcc601de","versionType":"git"},{"version":"26dfeee8db81354bfdade155f27f9e16510ad196","status":"affected","lessThan":"a9f0bfd624ee8a286d6fd2bf0f796e730efb49b0","versionType":"git"},{"version":"03660dab86f93319178a24667f6998526dc4355d","status":"affected","lessThan":"b285bc0a97f43823a4967fb6d286de4c7f53d541","versionType":"git"},{"version":"8634c1dbd73adb74d40533ebb7e914efb82e71fb","status":"affected","lessThan":"d078501dde9b57210f1808cdef4b59463d1f5fc8","versionType":"git"},{"version":"3d3cf6a7314aca4df0a6dde28ce784a2a30d0166","status":"affected","lessThan":"77098e4bea37af51d3962efa88a5af2ea5e1ac57","versionType":"git"},{"version":"5e7d0ac936354c36810e74ac3056b334ed1f4058","status":"affected","versionType":"git"},{"version":"5.10.259","status":"affected","lessThan":"5.11","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/batman-adv/tp_meter.c","net/batman-adv/types.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6.6.140","status":"affected","lessThan":"6.6.142","versionType":"semver"},{"version":"6.12.90","status":"affected","lessThan":"6.12.92","versionType":"semver"},{"version":"6.18.32","status":"affected","lessThan":"6.18.34","versionType":"semver"},{"version":"7.0.9","status":"affected","lessThan":"7.0.11","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/batman-adv/tp_meter.c","net/batman-adv/types.h"]}],"references":[{"url":"https://git.kernel.org/stable/c/7715c73f33260af724d734c41b794457e9be8dbc"},{"url":"https://git.kernel.org/stable/c/297e1bc4a915b7cd3e65a79ed906b23fb3d7aaae"},{"url":"https://git.kernel.org/stable/c/0b1bedf114ea93fef929b31f0d70a9eedcc601de"},{"url":"https://git.kernel.org/stable/c/a9f0bfd624ee8a286d6fd2bf0f796e730efb49b0"},{"url":"https://git.kernel.org/stable/c/b285bc0a97f43823a4967fb6d286de4c7f53d541"},{"url":"https://git.kernel.org/stable/c/d078501dde9b57210f1808cdef4b59463d1f5fc8"},{"url":"https://git.kernel.org/stable/c/77098e4bea37af51d3962efa88a5af2ea5e1ac57"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-07-19T15:40:00.603Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6.140","versionEndExcluding":"6.6.142"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.90","versionEndExcluding":"6.12.92"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.18.32","versionEndExcluding":"6.18.34"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.0.9","versionEndExcluding":"7.0.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.259"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}